Component Based
Design
Percival Lucena
1
Percival Lucena
● MSc Computer Science - USP - 2003
● IBM GBS - 2004- *
IT Architect - AngularJS Hybrid App
● College Professor 2005 - 2015
IBMEC, USF, UNASP
2
AGENDA
● Components
● Semantic Components
● Services
● MicroServices
● Component Based Development Model
● Conclusions
3
What is a component?
ALLEN, P. - 1997
4
Component Based Design
tightly coupled loosely coupled
Manage Complex Systems
5
Semantic Components
Percival Lucena - 2003
6
INFERENCE ENGINE
Semantic Components
Percival Lucena - 2003
city
7
Component
JavaBeans Component Manager
8
TalkAgent - 2002
9
TalkAgent - 2002 vision
10
Services
A service is similar to a component in that it’s used by
foreign applications. The main difference is that I
expect a component to be used locally (think jar file,
assembly, dll, or a source import). A service will be
used remotely through some remote interface, either
synchronous or asynchronous (eg web service)
FLOWER, M - 2004
11
Service Oriented Architecture
12
MicroServices - Fine Grained SOA
13
LAYERED APP
MicroServices - Team Organization
MICROSERVICE APP
Smarter ADM - Component Based Development
http://www-935.ibm.com/services/us/gbs/application-management/application-development-management/
define model distribute execute integrate 15
Component Integration Process for Smarter ADM
DST Cloud Env
Yellow Zone
Blue Zone Apps
JEE Middleware Test
Environments
Mobile First Test Environments
My Contribution:
Cloud Environment VM
Red Zone
My Contribution:
Component
Standards,
CBD Guidelines
Component
Component
Component
Component
Component
independent
contractor
independent
contractor
16
Traditional Hybrid Development
Smarter ADM Experience
18
Pet Project - Watson App
http://percivallucena.com/watsonapp
blue mix middleware Watson blue mix APIibm mobile first
app
21
Conclusion
● Components can be used to organize complex problems
● Components promote system decoupling
● Components can be developed independently using contract
specifications
● Components promote code reusability
● Components can be used to help scale complex systems
● Components can be replaced
● Components can be tested independently
22
References
● Allen, P - 1998 - Component Based Design for Enterprise Systems - Cambridge University Press
● Barcia, R Brown K et al - 2014 - Modern Web Development with Websphere - IBM Press
● Flower, M - 2004 - Inversion of Control Containers and the Dependency Injection pattern
online: http://www.martinfowler.com/articles/injection.html
● Lucena, P Moreira, D et al - 2003 - Semantic Agent a platform for the development of Software
Agents - 1st Workshop for Natural Language Processing - online: http://www.nilc.icmc.usp.
br/til/til2003/poster/lucena_moreira_estombelo_20.pdf
● Mueller, E. - Natural Language Processing with Thought Treasure - 2012 - CreateSpace Press
● Newman, S. - Building Microservices, 2015 - O'Reilly Press 23

Component based design

  • 1.
  • 2.
    Percival Lucena ● MScComputer Science - USP - 2003 ● IBM GBS - 2004- * IT Architect - AngularJS Hybrid App ● College Professor 2005 - 2015 IBMEC, USF, UNASP 2
  • 3.
    AGENDA ● Components ● SemanticComponents ● Services ● MicroServices ● Component Based Development Model ● Conclusions 3
  • 4.
    What is acomponent? ALLEN, P. - 1997 4
  • 5.
    Component Based Design tightlycoupled loosely coupled Manage Complex Systems 5
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
    Services A service issimilar to a component in that it’s used by foreign applications. The main difference is that I expect a component to be used locally (think jar file, assembly, dll, or a source import). A service will be used remotely through some remote interface, either synchronous or asynchronous (eg web service) FLOWER, M - 2004 11
  • 12.
  • 13.
    MicroServices - FineGrained SOA 13
  • 14.
    LAYERED APP MicroServices -Team Organization MICROSERVICE APP
  • 15.
    Smarter ADM -Component Based Development http://www-935.ibm.com/services/us/gbs/application-management/application-development-management/ define model distribute execute integrate 15
  • 16.
    Component Integration Processfor Smarter ADM DST Cloud Env Yellow Zone Blue Zone Apps JEE Middleware Test Environments Mobile First Test Environments My Contribution: Cloud Environment VM Red Zone My Contribution: Component Standards, CBD Guidelines Component Component Component Component Component independent contractor independent contractor 16
  • 17.
  • 18.
    Pet Project -Watson App http://percivallucena.com/watsonapp blue mix middleware Watson blue mix APIibm mobile first app 21
  • 19.
    Conclusion ● Components canbe used to organize complex problems ● Components promote system decoupling ● Components can be developed independently using contract specifications ● Components promote code reusability ● Components can be used to help scale complex systems ● Components can be replaced ● Components can be tested independently 22
  • 20.
    References ● Allen, P- 1998 - Component Based Design for Enterprise Systems - Cambridge University Press ● Barcia, R Brown K et al - 2014 - Modern Web Development with Websphere - IBM Press ● Flower, M - 2004 - Inversion of Control Containers and the Dependency Injection pattern online: http://www.martinfowler.com/articles/injection.html ● Lucena, P Moreira, D et al - 2003 - Semantic Agent a platform for the development of Software Agents - 1st Workshop for Natural Language Processing - online: http://www.nilc.icmc.usp. br/til/til2003/poster/lucena_moreira_estombelo_20.pdf ● Mueller, E. - Natural Language Processing with Thought Treasure - 2012 - CreateSpace Press ● Newman, S. - Building Microservices, 2015 - O'Reilly Press 23