48
Object Orientation in CBD 김김김 , 김김김

Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Embed Size (px)

Citation preview

Page 1: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Object Orientation in CBD

Object Orientation in CBD

김현우 , 장재현

Page 2: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Contents• What is CBD?• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

2

Page 3: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

What is CBD?

• Component-based development– Developing software system based

on component

3

Page 4: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Contents• What is CBD?

– Component

• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

4

Page 5: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Component (1/4)

5

ImplementationImplementationSpecificationSpecification

for(i=0;i<10;i++){ a++; }return a;

for(i=0;i<10;i++){ a++; }return a;

StandardStandardPackagingPackaging

DeploymentDeployment

Page 6: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Component (2/4)

• Software module unit– Reusability– Replace-ability

6

Page 7: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Component (3/4)

• Reusability– Component can be used by some other applications

7

Hospital system A Hospital system B

Reservation

Customer

Patient

Reservation

Doctor

DiagnosisDiagnosis

Reuse

Page 8: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Component (4/4)

• Replace-ability– CBD can be a replacement of rapid change of

customer’s need

8

Hospital system

Reservation

Customer

Diagnosis 2

Diagnosis 1

Diagnosis 1

Replace

Page 9: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Contents• What is CBD?

– Dependency & Granularity

• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

9

Page 10: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Dependency (1/2)

• Tightly-coupled vs. loosely-coupled

10

Address

- homeAddress: string- homeTelno: string

+ getHomeAddress(): string+ setHomeAdress(newAddress): void+ getHomeTelno(): string+ setHomeTelno(newTelno) : void

Address

- homeAddress1: string- homeAddress2: string- homeTelno: string+ getHomeAddress(): string+ setHomeAdress(newAddress): void+ getHomeTelno(): string+ setHomeTelno(newTelno) : void

Page 11: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Dependency (2/2)

• Loosely-coupled– Interface– Abstraction

11

+getHomeAddress() : string+setHomeAddress(in newAddress : string) : void+getHomeTelno() : string+setHomeTelno(in newTelno : string) : void

-homeAddress1 : string-homeAddress2 : string-homeTelno : string

Addres

IAddress

1

*Customer

Interface

Page 12: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Granularity

• Coarse-grained

12

Page 13: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Contents• What is CBD?

– Goal of CBD

• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

13

Page 14: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Goal of CBD

componentcomponent

componentcomponent

componentcomponent

componentcomponent

14

Page 15: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Philosophy of CBD

• Philosophy– “Buy, don’t build”– LEGO®

“buy, don't build” by Fred Brooks

[Brooks 87] Brooks, F. P. Jr. “No Silver Bullet: Essence and Accidents of Software Engineering”Computer 20, 4 (April 1987): 10-9.

15

Page 16: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Contents• What is CBD?• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

16

Page 17: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Why CBD?

• Productivity– reducing code generation

• Quality– using guaranteed component

• Time-to-market– faster than traditional way

17

Page 18: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Contents• What is CBD?• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

18

Page 19: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Process of CBD (1/3)

Component Repository

Domain Analysis Domain Design Component Abstraction

Component DesignComponent ImplementationComponent Qualification

Component Distribution

Component SpecializationCBD DesignApplication Requirement

Component CompositionNew ApplicationNew Application

Component Development

Component-Based Software Development

19

Page 20: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Process of CBD (2/3)

QualificationQualification AdaptationAdaptation CompositionComposition

CQ CA CC

20

Page 21: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Process of CBD (3/3)

White box wrapping

Grey box wrapping

Black box wrapping

ComponentComponentAdaptationAdaptation

21

Page 22: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Component Adaptation (1/3)

Controller Adapter LightsRI_Lights PI_Lights

<Lights control system>

Page 23: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Component Adaptation (2/3)

LightsPI_Lights

<<Interface>>lightG: BooleanlightG: Booleanon_green()off_green()on_red()off_red()

<<Interface>>color: ML_Colorchange(new: ML_Color)on()off()

ControllerRI_Lights

Page 24: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Component Adaptation (3/3)

REFINEMENT AdapterREFINES RI_LightsINCLUDES PI_LightsOPERATIONS on_red = IF color = Red THEN on ELSE LET color BE color = Red IN change(color); on

Adapter

Page 25: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Contents• What is CBD?• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

25

Page 26: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

• International

26from IDC

Commercial Component (1/6)

Page 27: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Commercial Component (2/6)

• International (cont’d)

– Focus on technical components than business components

– Componentsource Inc. (ENG) – 1303 components of 293 companies

• “The world's largest source of software components”

– Flashline Inc. (USA) –227 components of 94 companies

• BEA AquaLogic enterprise repository

27

Page 28: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Commercial Component (3/6)

• Domestic

28from KCSC

Page 29: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Commercial Component (4/6)

• Domestic large company– Large SI companies develop technical components

themselves– Operate exclusive responsible team

– Samsung SDS, LG CNS, SK C&C, etc, …

29

Page 30: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Commercial Component (5/6)

• Domestic small company– Simple application – Homepage, Mail, BBS– Recently, even ERP, KMS, CRM

– Component Bank • Component tools, Web application

– Imeca - export to 30 countries• HRM solution, Government integrated administrative system

– N3Soft• Component tools, ERP, KMS, Web log analysis

– Namo Interactive• Web application

30

Page 31: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

31

Page 32: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Commercial Component (6/6)

32

We want to detect memory leaks or know code performance and code coverage.We want to collect data on Disk I/O, Network I/O and synchronization wait time

Page 33: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Success story (1/2)

• CBD based integrated framework case

UML based system analysis

System architecture

Components

CBDTest

* ITPlus

Page 34: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Success story (2/2)

Normal

CBD

Human Resource 40% ↓TIME 50% ↓

SW Quality ↑

* ITPlus

Page 35: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Contents• What is CBD?• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

35

Page 36: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Using component (1/3)

STDMETHODIMP CHello::sayHello(BSTR name, BSTR *message){

TCHAR buffer[256];_bstr_t temp = name;::wsprintf(buffer, _T("Mr. %s hello?"),

(TCHAR*)temp);temp = buffer;*message = temp.copy();return S_OK;

}

• Make HelloApp.dll ATL

ATL: Active Template Library

Page 37: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Using component (2/3)

• Register COM+ component from dll file

Component

Page 38: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Using component (3/3)

• in ASP– We can use another component also

<%if Not isEmpty(Request.Form("txtName")) then

Dim helloset hello = CreateObject("HelloApp.Hello.1")dim messagemessage = hello.sayHello(Request.Form("txtName"))Response.Write message

end if%>

COM+ component nameComponent procedure call

Page 39: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Contents• What is CBD?• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

39

Page 40: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Limit of CBD (1/2)

• Platform-dependence

.NET Application

J2EE Application

Message Queue Middleware

SQL Server

JDBCADO .NETProvider

JMSNative

from MSDN

Page 41: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Limit of CBD (2/2)

• Tightly-coupled– RPC

• Synchronous – wait until return

<%if Not isEmpty(Request.Form("txtName")) then

Dim helloset hello = CreateObject("HelloApp.Hello.1")dim messagemessage = hello.sayHello(Request.Form("txtName"))Response.Write message

end if%>

Reference Procedure call

Page 42: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

From CBD to SOA (1/4)

Interface

Component

Service

• Service is also component• CBD ≒ SOA

42

Page 43: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

From CBD to SOA (2/4)

• Service-Oriented Architecture– “Web service”-based

43

Page 44: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

From CBD to SOA (3/4)

Service Broker

Service Consumer

Service Provider

Publish

Connect

Discover

Internet

44

Page 45: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

45

From CBD to SOA (4/4)

• Mashup

+

Page 46: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

Contents• What is CBD?• Why CBD?• Process of CBD• Commercial Component• Using Component• From CBD to SOA• Summary

46

Page 47: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

47

Summary

• CBD takes productivity, quality, reduce of cost and rapid response in market

• Recent concept of service starts from component in CBD

• Component is well-applied OO concept in business

Page 48: Object Orientation in CBD 김현우, 장재현. Contents What is CBD? Why CBD? Process of CBD Commercial Component Using Component From CBD to SOA Summary 2

References• Alan W. Brown, “On Components and Objects: The Foundations of

Component-Based Development”, IEEE, 1997• Bertrand Meyer, “ Component-Based Development: From Buzz to

Spark”, IEEE, July 1999• Butlergroup, “Component-Based Development”, Butlergroup

Management Guide, September 1998• George T. Heineman, “Component-Based Software Engineering”,

Addison-Wesley, 2001• Jim Q. Ning, “Component-based Software Engineering”, SAST,

1997• Michael Sparling, “Lessons learned through six years of

component-based development”, ACM, October 2000 p.47-53• 전병선 , “ 객체지향 이야기” , 영진 .COM, 2004 14 장

48