Submit Search
Upload
Introduction of JIOPi
•
0 likes
•
520 views
N
netstarry
Follow
Introduction of JIOPi
Read less
Read more
Technology
Report
Share
Report
Share
1 of 15
Recommended
浅析主流商业和开源Esb产品
浅析主流商业和开源Esb产品
nereuschen
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Justin Lin
实战Ejb(最终完美版)
实战Ejb(最终完美版)
yiditushe
Top100summit automan x之框架介绍 王超
Top100summit automan x之框架介绍 王超
drewz lin
美团前端架构简介
美团前端架构简介
pan weizeng
Fttx ttj
Fttx ttj
Aladeomoba
Kirolak presentacion
Kirolak presentacion
adrian
The Nervous System
The Nervous System
spartacus1138
Recommended
浅析主流商业和开源Esb产品
浅析主流商业和开源Esb产品
nereuschen
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Servlet & JSP 教學手冊第二版 - 第 12 章:從模式到框架
Justin Lin
实战Ejb(最终完美版)
实战Ejb(最终完美版)
yiditushe
Top100summit automan x之框架介绍 王超
Top100summit automan x之框架介绍 王超
drewz lin
美团前端架构简介
美团前端架构简介
pan weizeng
Fttx ttj
Fttx ttj
Aladeomoba
Kirolak presentacion
Kirolak presentacion
adrian
The Nervous System
The Nervous System
spartacus1138
La săniuş
La săniuş
adele19
Kirola
Kirola
adrian
HMMWV recovery safety brief
HMMWV recovery safety brief
SDowdy
Meu slide
Meu slide
Jorge Andrade
BB 11 Hopefuls...
BB 11 Hopefuls...
Lady-Selena Ledgerton
Pemilihan Duta wisata indonesia 2010
Pemilihan Duta wisata indonesia 2010
Jaffray Bittikaka
Introduction of JIOPi
Introduction of JIOPi
netstarry
Creating Creative Superteams
Creating Creative Superteams
David Sherwin
You’ve Only Got Two Eyeballs: Designing Products for the Responsive Web
You’ve Only Got Two Eyeballs: Designing Products for the Responsive Web
David Sherwin
RCPA
RCPA
praveen
Otc
Otc
praveen
Job of Medical representative
Job of Medical representative
praveen
130605 webinale-nuisol
130605 webinale-nuisol
NUISOL · Agentur für digitale Aha-Erlebnisse (Agency for digital Aha-Experience)
MobileWebAppFramework_V5_design
MobileWebAppFramework_V5_design
Jackson Tian
广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化
taobao.com
Kissy design
Kissy design
yiming he
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
FLASH开发者交流会
电子书项目总结 前端
电子书项目总结 前端
jay li
000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲
ArBing Xie
使用 laravel 的前與後
使用 laravel 的前與後
Shengyou Fan
D2-ETao-show
D2-ETao-show
leneli
谈谈模块化
谈谈模块化
衡锋 阳
More Related Content
Viewers also liked
La săniuş
La săniuş
adele19
Kirola
Kirola
adrian
HMMWV recovery safety brief
HMMWV recovery safety brief
SDowdy
Meu slide
Meu slide
Jorge Andrade
BB 11 Hopefuls...
BB 11 Hopefuls...
Lady-Selena Ledgerton
Pemilihan Duta wisata indonesia 2010
Pemilihan Duta wisata indonesia 2010
Jaffray Bittikaka
Introduction of JIOPi
Introduction of JIOPi
netstarry
Creating Creative Superteams
Creating Creative Superteams
David Sherwin
You’ve Only Got Two Eyeballs: Designing Products for the Responsive Web
You’ve Only Got Two Eyeballs: Designing Products for the Responsive Web
David Sherwin
RCPA
RCPA
praveen
Otc
Otc
praveen
Job of Medical representative
Job of Medical representative
praveen
130605 webinale-nuisol
130605 webinale-nuisol
NUISOL · Agentur für digitale Aha-Erlebnisse (Agency for digital Aha-Experience)
Viewers also liked
(13)
La săniuş
La săniuş
Kirola
Kirola
HMMWV recovery safety brief
HMMWV recovery safety brief
Meu slide
Meu slide
BB 11 Hopefuls...
BB 11 Hopefuls...
Pemilihan Duta wisata indonesia 2010
Pemilihan Duta wisata indonesia 2010
Introduction of JIOPi
Introduction of JIOPi
Creating Creative Superteams
Creating Creative Superteams
You’ve Only Got Two Eyeballs: Designing Products for the Responsive Web
You’ve Only Got Two Eyeballs: Designing Products for the Responsive Web
RCPA
RCPA
Otc
Otc
Job of Medical representative
Job of Medical representative
130605 webinale-nuisol
130605 webinale-nuisol
Similar to Introduction of JIOPi
MobileWebAppFramework_V5_design
MobileWebAppFramework_V5_design
Jackson Tian
广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化
taobao.com
Kissy design
Kissy design
yiming he
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
FLASH开发者交流会
电子书项目总结 前端
电子书项目总结 前端
jay li
000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲
ArBing Xie
使用 laravel 的前與後
使用 laravel 的前與後
Shengyou Fan
D2-ETao-show
D2-ETao-show
leneli
谈谈模块化
谈谈模块化
衡锋 阳
你的 JS 該減肥了!5個提升網頁載入速度的技巧 - Modern Web 2020
你的 JS 該減肥了!5個提升網頁載入速度的技巧 - Modern Web 2020
Shubo Chao
[Baidu web frontend_conference_2010]_[sina_blog_architecture]
[Baidu web frontend_conference_2010]_[sina_blog_architecture]
思念 青青
百度前端技术交流会-新浪博客前端架构分享
百度前端技术交流会-新浪博客前端架构分享
tiantianli
杨皓 新浪博客前端架构分享
杨皓 新浪博客前端架构分享
isnull
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
mysqlops
百度分布式数据库 刘斌 Sacc2010
百度分布式数据库 刘斌 Sacc2010
Chuanying Du
百度分布式数据库平台
百度分布式数据库平台
Wyatt Fang
Javascript primer plus
Javascript primer plus
Dongxu Yao
开源应用日志收集系统
开源应用日志收集系统
klandor
前端基础知识回顾
前端基础知识回顾
Wu tianhao
常用Js框架比较
常用Js框架比较
Adam Lu
Similar to Introduction of JIOPi
(20)
MobileWebAppFramework_V5_design
MobileWebAppFramework_V5_design
广告投放代码和创意代码持续优化
广告投放代码和创意代码持续优化
Kissy design
Kissy design
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
电子书项目总结 前端
电子书项目总结 前端
000 北京圣思园教育科技有限公司第一期面授培训大纲
000 北京圣思园教育科技有限公司第一期面授培训大纲
使用 laravel 的前與後
使用 laravel 的前與後
D2-ETao-show
D2-ETao-show
谈谈模块化
谈谈模块化
你的 JS 該減肥了!5個提升網頁載入速度的技巧 - Modern Web 2020
你的 JS 該減肥了!5個提升網頁載入速度的技巧 - Modern Web 2020
[Baidu web frontend_conference_2010]_[sina_blog_architecture]
[Baidu web frontend_conference_2010]_[sina_blog_architecture]
百度前端技术交流会-新浪博客前端架构分享
百度前端技术交流会-新浪博客前端架构分享
杨皓 新浪博客前端架构分享
杨皓 新浪博客前端架构分享
基于Symfony框架下的快速企业级应用开发
基于Symfony框架下的快速企业级应用开发
百度分布式数据库 刘斌 Sacc2010
百度分布式数据库 刘斌 Sacc2010
百度分布式数据库平台
百度分布式数据库平台
Javascript primer plus
Javascript primer plus
开源应用日志收集系统
开源应用日志收集系统
前端基础知识回顾
前端基础知识回顾
常用Js框架比较
常用Js框架比较
Introduction of JIOPi
1.
构建工业模型的Java模块系统 JIOPi项目介绍
2.
章节 起因 目标
建模 装配 模块化系统 框架特点 Hello World 无API侵入风格 级联式资源库 容器整合 类加载模型 总结
3.
起因 Jar包升级繁琐 lib目录Jar管理混乱
Jar依赖冲突 局部实现更换几乎不可能 分布部署时的边界较难重新规划
4.
目标 Jar包自动兼容性升级 lib下仅放置被直接使用的Jar
忽略实现类细节 配置式模块更换 弱化分布部署的边界
5.
建模 工业产品模块系统模型 模块标准化
图纸设计 模块高度可复用性 自由选择实现模块适应需求变化
6.
装配 Star Trek
Voyager Holodeck装配模型 自动默认装配 Computer ... di~ ... Give me a Benz SLS 配置式装配 Computer ... di~ ... Benz SLS with Engine V9 级联式装配和级联式装配文件 自动双向连接与可选插口连接
7.
模块化系统 Classpath:编译时和运行时保持一致性 模块隔离:独立ClassLoader
接口导出:API与IMPL 独立打Jar包模式 依赖管理:API部署与配置文件 可选依赖:可选插口连接模型 POJO兼容:一致的部署方式和调用方式
8.
框架特点 轻量级模块化框架 部署于Classpath下的Jar小于50k
自动升级 随时修复Bug与提升性能 非侵入式 JIOPi模块无需修改即可用于其它Java系统 高兼容性 兼容所有Java(J2SE J2EE)系统,以及WEB容器无缝整合 无API侵入风格 对模块的访问无需添加框架API
9.
HelloWorld 所见即所得模式代码 ModuleConsole
car = CentralConsole.accessModuleConsole("voyager.benz.car_sls_amg", "0.1.0.0"); ControlPanelbenzSlsAmg = car.accessControlPanel("voyager.car", ControlPanel.class); System.out.println(benzSlsAmg.operate("getStatus", String.class)); API部署模式代码 ModuleConsole car = CentralConsole.accessModuleConsole("voyager.benz.car_sls_amg", "0.1.0.0"); Car benzSlsAmg = car.accessControlPanel(Car.class.getName(), Car.class); System.out.println(benzSlsAmg.getStatus());
10.
无API侵入风格 POJO代码 public class MyMailSender implements MailSender{}
public class MyMail implements Mail{} MyMailSender.sendMyMail("姓名<to@yourmail.com>", "hello", "content test"); Mail myMail = new MyMail(); myMail.addTo("to@yourname.com","姓名"); myMail.setSubject("测试邮件"); myMail.setTextMsg("测试内容"); MailAttachment attachment = new MailAttachment(new URL()); myMail.attach(attachment); myMail.send(); 配置文件 <module name="jiopi.module.mailsender" version="0.1"> <controlpanel name="jiopi.MailSender" id="mymail"> <properties>… </properties> </controlpanel> <controlpanel name="jiopi.Mail" id="mymail"> <inner-accessory id="mailSender" module="this" configuration="mymail"/> </controlpanel> </module> <redefine class="org.jiopi.ibean.show.mailsender.MyMailSender" module="jiopi.module.mailsender" version="0.1" controlpanel="jiopi.MailSender" configuration="mymail"/> <redefine class="org.jiopi.ibean.show.mailsender.MyMail" module="jiopi.module.mailsender" version="0.1" controlpanel="jiopi.Mail" configuration="mymail"/>
11.
级联式资源库 标准网络资源库 标准配置文件模式
可使用多种网络协议部署 支持分离式部署 简化集群环境中的类库管理 jiopi.resourcepool.local.path= http://..... jiopi.resourcepool.local.pri=2 本地开发资源库 与开发环境一致 无需配置文件 jiopi.resourcepool.local.path= file:/..... jiopi.resourcepool.local.pri=2
12.
容器整合 WEB容器整合 将配置好的jiopi.properties文件放入JIOPi-iBean.jar中
将JIOPi-iBean放入WEB容器的扩展lib目录,如tomcat-home/lib中 在WEB应用的classpath中添加一个修改了ibean.work.dir配置的jiopi.properties文件 在WEB应用启动时调用FrameworkInitializer.initialize();框架初始化函数 当前WEB容器便成为一个支持JIOPi模块化编程风格的WEB容器 IoC容器整合 代理模式 <bean id="jiopi" singleton="false" class="org.jiopi.framework.CentralConsole" factory-method="accessControlPanel"/> appContext.getBean("jiopi","jiopi.ibean.helloworld.i",null,"org.jiopi.ibean.example.module.helloworld.HelloWorldImpl", HelloWorld.class,new Object[]{}); 直接定义模式 <bean id="helloworld" singleton="false" class="org.jiopi.framework.CentralConsole" factory-method="accessControlPanel"> <constructor-arg type="java.lang.String"><value>jiopi.ibean.helloworld.i</value></constructor-arg> <constructor-arg type="java.lang.String"><null/></constructor-arg> <constructor-arg type="java.lang.String"><value>org.jiopi.ibean.example.module.helloworld.HelloWorldImpl</value></constructor-arg> <constructor-arg type="java.lang.Class"><value>org.jiopi.ibean.example.blueprint.helloworld.HelloWorld</value></constructor-arg> <constructor-arg type="java.lang.Object[]"><list></list></constructor-arg> </bean> appContext.getBean("helloworld",HelloWorld.class);
13.
类加载模型 Blueprint Common
Lib Resource Pool Module Execution Environment
14.
总结 IOP编程和模块编程提议 无API侵入的透明轻量级实现
忽略实现类细节和避免Jar依赖冲突 友好的POJO风格开发和部署模式 无运行时负担和运行时风险 易于团队协作
15.
谢谢观看 2010年6月