Vous êtes sur la page 1sur 44

eGovFrame Training Book

eGovFrame Center
2012

Table of contents
I

Changes in the SW development environment

II

What is a Framework?

III

eGovFrame overview

IV

Open Source Policy

Common components

VI

Mobile eGovFrame

VII

eGovFrame adoption guide

VIII

Achievement and Further work

Page l

Background

Paradigm shift in software development


Progressing continuously to overcome SW industrys critical situations
Increasing development costs as SW scale is getting larger and more complex
Inconsistent development approach make maintainability worse
Lack of education and training for new technologies
1960s

2000s

HW Centric

Procedure language

Service
Component
(Reusable)

OOP

Service
Component

Component

Service
Component

Framework

Service
Component

Framework
(Collection of API*))

Improve productivity

Improve scalability

Ensure performance

Easy management

API*) : Application Program Interface


Page l

Definition

What is a Framework?

Conceptual Framework
Skeleton or infrastructure to build something

GoF pattern by Professor Ralph Johnson


A framework is a set of cooperating classes that make up a
reusable design for a specific class of software
Narrow meaning : As a kind of a solution which implements
Design pattern, a reusable set of libraries or classes for a
software system

Wide meaning : (narrow meaning) + various development


guide and supporting tools

Page l

SW Framework

SW Frameworks are a special case of software libraries in that they are reusable
abstraction s of code wrapped in a well=defined API. [wikipedia]
< IS* without SW framework >

Service application

< IS with SW framework >

Service application
Development area
(approx. 70~80%)

Development area
(100% done by developers)
SW framework used
(approx. 20 ~ 30%)
Middleware

Middleware

Operating system

Operating system

Hardware

Hardware

* IS : Information System
Page l

What is a Framework?

SW Framework benefits

Enhances IT service quality because developers focus only on their business logic
while all the technical issues are handled by SW framework

(IS development without SW framework)

(IS development with SW framework)

SW Framework
Common biz service
Common technical service
Architecture policy

Page l

Framework based development

What is a Framework?

Benefits
Improving productivity with code reusability
Improving maintainability with consistent development approach
As providing proven solutions based on best practice, reducing
the technical variation between developers
Cautions
If a framework tightly restricts the coding style, it may inhibit
creative development
In case of excessive configuration management, it may make
additional works
In case of abusing framework patterns, it rather increases lines of
code
Page l

What is a Framework?

Use status of a framework

In case of Korea, since the year 2000, large 3 SI companies have


developed and useed a framework to improve development
productivity
In global environment, various open source frameworks(mainly
Spring) are used
In recent years, the framework use trend is the combination with
each other which specialized in certain areas

Spring

Log4J

iBatis

JUnit

other
frameworks

Page l

What is eGovFrame?

eGovFrame Overview

Pre-implemented basic functions standardized for e-Government system


development and operation
eGovFrame

Page l

eGovFrame Overview

Vision of eGovFrame
Vision

Improve service quality of e-Government


& efficiency of ICT investment
Objectives
Reuse common
features

Increase
Interoperability

Standardization

Reflect latest
ICT trends

Resolve vendor
dependency

Strategies
Openness

Enhance SMEs
competitiveness

Community

Establish SW framework
standards for e-Government

Approve the general use of


eGovFrame

Propagate eGovFrame
through the regular training

Provide reliable technology


infrastructure

Open assets to the public &


encourage participation

Draw up a policy to vitalize


eGovFrame

Page l

10

A lot of challenges and issues (1/2)

SW framework became a basic tool for e-Government


(71% of e-Government system from 2004 to 2007).

eGovFrame Overview

29%

71%

* Samsung(SYSTEMiER), LG (LAF/J), SK (Jgarnet)


** HP(Instant/On enterprise), IBM(Application Framework), MS(.NET)

Some barriers were identified in e-Government system

Page l

11

eGovFrame Overview

A lot of challenges and issues (2/2)


< Development with vendors frameworks>

Customer

RFP *)

Vendor
A

Vendor
B

Vendor
C

< Development with standard frameworks>

Request for
H/W, S/W,
architecture,
and application
development

Vendor
D

Application 1

Application 2

Application 1

Framework 1

Framework 2

Framework 3

Customer

Request for
application
development

RFP *)

Vendor
A

Vendor
B

Application 1

Vendor
C

Application 2

Vendor
D

Application 1

Standard Framework

RFP *) : Request for proposal


Page l

12

Development Requirement

eGovFrame Overview

Draw optimized functions through a process of ISP*)


Take advantage of open sources which are globally used

Exclude certain companies technology dependency


Try to exclude functions if a commercial solution provides
Ensure compatibility with public information service sector
infrastructure which is generally applied
Open source code, analysis and design documentation for wide
dissemination

In order to be a standard which satisfies most relative parts, on the


way of development, listen and reflect various opinion which
comes from experts groups
ISP *) : Information Strategy Plan
Page l

13

Open Innovation

eGovFrame Overview

Page l

14

Difference -

between OSS Framework and eGovFrame

eGovFrame Overview

eGovFrame distributes pre-configured development environment, including


runtime, various configuration files, template code, development tools and a
comprehensive guide
Because a open source framework is specific to a particular domain, requires a lot of
effort to interface each other to use

Complicated
configuration

Open Complicated
Open
configuration
Source A
Source B
Complicated
configuration

Open
Source D

Open
Source CConflict of functions

eGovFrame
- remove duplication
- Adjustment of configuration

<Combination of open source frameworks>

<eGovFrame>

OSS*) : Open Source Software


Page l

15

eGovFrame Overview

Extracting OSS for eGovFrame

Define basic functions and architecture

Function
Design

Final Result

Analyze 3 big vendors frameworks and eGov. projects from 2004 to 2011

45 open sources selected

54 functions and 229 common components

Policy
Setting

Open Source Evaluation Process


License with no restriction on distribution
and use
Evaluate candidate open sources(175)

Logical
Test

Functional/non-functional requirements

Constraints for integration and interfaces


Physically test candidate open sources(85)

Physical
Test

Basic functions
Non-functional requirements(SW Quality)

Best Open Source Selection

Define Open Source Selection Policy

[Major open sources]

Biz. transaction :
Spring & 22
Data :
iBatis, Hibernate &1
Development tool :
Eclipse & 3
Test tool :
Junit & 5
Distribution tool :
Maven & 1
Configuration Management
tool : Subversion & 1
Mobile UX :
JQueryMobile&4

Page l

16

eGovFrame Overview

eGovFrame Concept

Information System
Application
Biz1

Biz2

Biz3

Common
Biz 1

Common
Biz 2

Biz 4

Generally used

reusable
components
(ex: calendar,
notice board, etc)

As core biz functions,


develop using design and
source code (API) which
provided by eGovFrame

eGovFrame
Design
(Architecture or Pattern

+ Based Source Code

Based S/W
Middleware
DB
OS
H/W

Reusable asset,
defining design and
base source code
which is repeatedly
used in information
system project, as
based structure to
make a particular
technology or
application

Page l

17

Composition of eGovFrame

eGovFrame Composition

Consists of 4 environments, namely, development, runtime, operation, management


Development
Environment

Runtime
Environment

Operation
Environment

Management
Environment

SW Developers

SW Applications

Application
Operators

Framework
Managers

Environment

Description

Development
Environment

Provides the implementation(coding, debugging), test, distribution and configuration


management tools for the effective development of applications based on the
eGovFrame Runtime Environment.

Runtime
Environment

Provides common runtime modules for running the SW applications

Operation
environment

Provides operational tools for monitoring and operating SW application based on


eGovFrame

Management
Environment

Provides management tools for maintaining and improving efficiently eGovFrame

Page l

18

eGovFrame Composition Functionalities

Composition of eGovFrame

Runtime Environment
Presentation Layer
Ajax Support

Internationalization

MVC

Security

UX Layer

Business Logic
Layer

UX/UI Controller
Component

Biz. Process
Management

HTML5

Persistent Layer
Data Access

DataSource

Message Service

ORM

Transaction

Naming Service

CSS
Exception Handling

JavaScript Module App


Framework

UI Adaptor

Integration Layer

Management
Environment
Operation
Management Tool
Status Monitoring

Web Service

Foundation Layer
AOP

Cache

Compress
/Decompress

Encryption/Decryption

Excel

File Handling

File Upload/Download

FTP

Server Security

ID Generation

IoC Container

Logging

Mail

Marshalling
/Unmarshalling

Object Pooling

Property

Resource

Scheduling

String Util

XML Manipulation

Development
Management Tool

Operation Environment

Development Environment
Implementation Tool

Test Tool

Deployment Tool

Conf. & Change Mgt.


Tool

Monitoring Tool

Version Management

Administration Tool

Issue Tracking

Code Generation

Test Reporting

Build

Configuration Mgt.

Monitoring

Code Inspection

Unit Test

Deployment

Change Management

Reporting

Server Security
Management

Logging Management

Debug
Resource Management

Editor
Administration
Methodology & Template

Page l

19

Composition of eGovFrame

General programming process

Adopt eclipse IDE*), and it consists of programming support tools from coding to
deployment which is the entire programming process
Development Server

Developer PC

Coding
Code editing
Testing
Debugging
Inspection

Build

Succe
ss?

Compile
Packaging

Y
Commit

Configuration
management

Checkout

Build
Compile
Packaging

Operation Server

WAS restart

Deploy

IDE*) : Integrated Development Environment


Page l

20

Composition of eGovFrame

Eclipse IDE Overview

Integrated Menu for quick access, consisted of eGovFrame support plug-ins

Provide various editors such as DBIO, UML, ERD , etc

Page l

21

eGovFrame IDE

eGovFrame integrated menu

Composition of eGovFrame

Only activate in eGovFrame Perspective


Integrated menu for quick access to eGovFrame related plug-ins
Start
- New Core Project
: create eGovFrame Core Project
- New Web Project
: create eGovFrame Web Project
- New Template Project : create eGovFrame Template Project
Analysis
- New Usecase Diagram : create Usecase Diagram
Design
- New ER Diagram : create ER Diagram
- New Class Diagram : create Class Diagram
Implementation
- Add eGovFrame Common Component : create Common Component
- New SQL Map Config : create SQL Map Config file
- New SQL Map : create SQL Map file
- Show DBIO Search View : display DBIO Search View
Configuration
- Customize Development Tool : optionally install the required functionality
- Server Connection Management Show SVN Repositories View : display SVN Repositories View
Nexus : manage Nexus repository information
Page l

22

Composition of eGovFrame

Composition of the runtime environment

6 service groups, 38 services compose the runtime. Support MVC, DI,


AOP, etc based on Spring framework
Runtime Environment
Presentation Layer
Ajax Support

Internationalization

MVC

Security

UI Adaptor

Business Logic
Layer

UX Layer
UX/UI Controller Component
HTML5

Biz. Process
Management

Persistent Layer
Data
TBD
Access

DataSource

Message Service

ORM
TBD

Transaction

Naming Service

CSS3

JavaScript Module App Framework

Integration
Layer

Exception
Handling

Web Service

Foundation Layer
AOP

Cache

Compress/Decompress

Encryption/Decryption

Excel

File Handling

File Upload/Download

FTP

Hot-Deploy

ID Generation

IoC Container

Logging

Mail

Marshalling/Unmarshalling

Object Pooling

Property

Resource

Scheduling

String Util

XML Manipulation

Page l

23

Open source evaluation process

Open Source Policy

First evaluation
the license with no restriction on distribution and usage?
features that meet the requirements?
Second evaluation
satisfy with the quality requirements such as functionality,
reliability, portability, etc?
Use the ISO 14598 and SEIPECA to define the OS evaluation process

Selected 40 open sources such as Spring, etc

Page l

24

Open Source Policy

eGovFrame License

The eGovernment Standard Framework adopts Apache License, Version 2.0. But,
other open source SWs used in the Standard Framework retain each pertinent
licensing policy
Distribution of reciprocity : When deploy OSS to a third party, derived works can only be
distributed under the same license terms as the original
ex) LGPL, EPL, CPL, etc

Criteria

GPL

LGPL

MPL

BSD
License

Apache
License

Free access to the source code

Free redistribution

Obtaining the source code

Modifying the source code

Open derived works

Combining with the exclusive SW

Page l

25

Open Source Policy

Runtime environment OSS (1/3)


Service group

Presentation
layer

Service name

OSS

Ajax Support

Ajax Tags 1.5

Apache License 2.0

Internationalization

Spring 3.0.5

Apache License 2.0

MVC

Spring 3.0.5

Apache License 2.0

Security

Apache Commons
Validator 1.3.1

Apache License 2.0

UI Adaptor

Business Logic
layer

Persistent
layer

Integration
layer

License

Process Control

Web Flow 2.0

Apache License 2.0

Exception Handling

Spring 3.0.5

Apache License 2.0

Data Access

iBatis SQL Maps 2.3

Apache License 2.0

DataSource

Spring 3.0.5

Apache License 2.0

ORM

Hibernate 3.4

GNU Lesser General Public License

Transaction

Spring 3.0.5

Apache License 2.0

Naming Service Support

Spring 3.0.5

Apache License 2.0

Integration Service
Web Service Interface

Apache CXF 2.3.3

: Extend functions,

Apache License 2.0

- : Self-Development

Page l

26

Open Source Policy

Runtime environment OSS(2/3)

Service group

Foundation
Layer

Service name

OSS

License

AOP

Spring 3.0.5

Apache License 2.0

Cache

EHCache 2.4.1

Apache License 2.0

Compress/Decompress

Apache Commons Compress 1.1

Apache License 2.0

Encryption/Decryption

Java simplified encryption (jasypt) 1.7

Apache License 2.0

Excel

Apache POI 3.2, jXLS 0.9.9

Apache License 2.0

File Handling

Jakarta Commons VFS 1.0

Apache License 2.0

File Upload/Download

Apache Commons FileUpload 1.2.2

Apache License 2.0

FTP

Apache Commons Net 3.0.1

Apache License 2.0

ID Generation

IoC Container

Spring 3.0.5

Apache License 2.0

Logging

Log4j 1.3

Apache License 2.0

Mail

Apache Commons Email 1.1

Apache License 2.0

: Extend functions,

- : Self-Development

Page l

27

Open Source Policy

Runtime environment OSS(3/3)

Service group

Foundation
Layer

Service name

OSS

License

Object Pooling

Apache Commons Pool 1.5.6

Apache License 2.0

Property

Spring 3.0.5

Apache License 2.0

Resource

Spring 3.0.5

Apache License 2.0

Scheduling

Quartz 1.8.5

Apache License 2.0

Server Security

Spring Security 2.0.4

Apache License 2.0

String Util

Jakarta Regexp 1.5

Apache License 2.0

XML Manipulation

Apache Xerces 2.2.9


JDOM 1.1

Similar to Apache License

: Extend functions,

- : Self-Development

Page l

28

Open Source Policy

Development environment OSS

Service group

Service name
Code Generation

Implementation Tool

Test Tool

Deployment Tool

License

Code Inspection

PMD 4.2

BSD-style

Debug

Eclipse 3.4

EPL & EDL

Editor

Eclipse 3.4

EPL & EDL

Methodology & Template

AmaterasUML 1.0.5,
AmaterasERD 1.0.5

EPL 1.0

Test Reporting

Ant,
EMMA

Apache License 2.0,


CPL

Unit Test

JUnit, EasyMock, DbUnit

CPL, MIT, LGPL 2.1

Build

Maven 2.1,
Hudson

Apache License 2.0,


MIT

Deployment

Conf. & Change Mgt. Tool

OSS

Configuration Mgt.

SubVersion

Apache License 2.0

Change Mgt.

jTrac

Apache License 2.0

: Extend functions,

- : Self-Development

Page l

29

Common Components

Common components

Common Components are a collection of reusable common modules in developing


application for e-Government projects
eGovFrame

Past eGov. Application

A System B System C System


Application Application
S/W
S/W
Common
functions

Common
functions

Application
S/W

Current eGov. Application


A System B System C System
Reuse
Common Application Application Application
Components S/W
S/W
S/W

Define
Common
Components

Common
functions

B
C

F/W

F/W

H/W

H/W

H/W

Duplicate development of the


same feature in each project
Business dependency in
subsequent projects
Limited opportunities for small
business bid

Framework
Define
Standard
Framework

Management

eGovFrame Center
Management system for
eGovFrame

B
C

F/W

F/W

F/W

Apply
H/W
Standard
Framework

H/W

H/W

Development based on the


standard framework
Productivity and quality
improvement by reusing
common components

Page l

30

How to draw common components

Common Components

Analyze detailed features of the actual SW development project

Evaluate 67 e-Gov. projects from 2004 to 2011


Refine through expert review, user interviews, etc
Main principles for the selection of common components
Is it overlapping functions in different sites?
Can it be structured to be reusable?
Is it possible to standardize features?

Select 229 common components such as login, notice board, etc

Page l

31

Common Components

Common Components of eGovFrame

229 Common Components of the reusable software modules


Categories

Components

Technical Common Components


(139 Components)

Security

8 Services including real name authentication and authority


management

User authentication/directory
service

3 Services including general login and certificate login

User support

51 Services including User Management, Counsel Management,


Survey Management, FAQ and Q&A

Collaboration

33 Services including Board, Club Management and Community


Management, mobile real-time notice, etc

System management

25 Services including Common Code Management, Menu


Management and Log Management

Integration

6 Services, including system access, mobile open API, etc

Statistics/Reporting

5 Services including Article and Connection Statistics

Digital asset management

8 services including knowledge management, mobile photo album,


etc

Utility Common Components


(90 Components)

90 Services including Calendar and Format Conversion

Page l

32

Procedure for applying common components

2) Install eGovFrame
1) Download eGovFrame
(Runtime/Development, etc) (Unzip files and configure properties)

Common Components

3) Download Common Component

6) Run and test

5) Modify, compile and build


4) Import them into Development Env.
(Properties or Source code can be
modified)
Page l

33

Mobile eGovFrame

What is Mobile eGovFrame?

Mobile eGovFrame is based on eGovFrame that adds functionalities of User


eXperience(UX) and mobile components in order to provide mobile web service

Presentation

Biz. Logic

Persistence

Integration

Foundation

Mobile Web
Runtime Environment

Implementation
Test
Deployment

10 new mobile component

Common
Component

User eXperience(UX)

Development Env.
Template-based
code generation
Dev. Env.

Runtime
Env.

eGovFrame

Runtime Env.
Mobile
Env.

Change Mgt.

Mobile Web
Development Environment

Mobile

Convert 30 web common


components to mobile
Technical components

Web
Utility components

Mobile Web
Common Component

Page l

34

How to develop a mobile service?

Mobile eGovFrame

It needs to build an application subordinated to the specific mobile devices


Duplicate development for each devices and OS (Use dependent SDK)

Page l

35

Template-based mobile service

Mobile eGovFrame

Template-based mobile services can be implemented by leveraging eGovFrames


mobile UX functions(runtime environment) and mobile common components

Page l

36

Case Study

Mobile eGovFrame

Gyeongsang Province Mobile Homepage

Page l

37

Case Study

Mobile eGovFrame

National Tax Service - Electronic tax invoice

Page l

38

System requirements for eGovFrame

eGovFrame Adoption Guide

Following all three conditions must be met


Java-based web application system(In case of existing WAS)

JavaEE(J2EE) 5 or JDK1.5+
As a new development system, if there is any separation with
legacy system, physically or logically
It is possible to apply to the system improvement/advancement,
even not based on eGovFrame, but it is not applicable in
principle, because it accompanies existing source code change

Page l

39

Considerations for using eGovFrame

Modification

eGovFrame Adoption Guide

Descriptions
- Not allow any changes for interoperability

Runtime
Environment

- Not allow any


changes

Development
Environment

- Allow changes
- Possible new
development

Common
Components

- Allow changes
- Possible new
development

- If there is any enquiry of changes or


improvements, it is possible after eGovFrame
Board review for the enquiry
- There is no restrictions on the changes and
additions
- There is no restrictions on the changes and
additions
- New development must follow eGovFrame
architecture compliance

Page l

40

eGovFrame Adoption Guide

Technical Support

Through the eGovFrame Portal (http://eng.egovframe.go.kr), receives SR(Service


Request) and performs on/offline technical support

Technical Support Process (Management Env.)


Project
Registration

Support
approval
Check
Supported

Project
Manager

eGovFrame
Center(NIA)

Service
Request

Online
Support

On-site
Support

Tech Support
Request

Project
Manager

www.egovframe.go.kr

If nessacery

eGovFrame
Center(NIA)

Page l

41

Achievement

Achievement and Further work

After opening the eGovFrame in June, 2009, download 100,000 in the


shortest period (May, 2011)
Applied technical support to more than 293 information system development
projects, such as national representative portal, Yeosu Expo, etc.
Through free eGovFrame training courses for SME engineers, propagate
eGovFrame technology
At the end of Sep. 2012, more than 3,204 engineers completed the training
course
eGovFrame swept three awards in the FutureGov Award 2010 in Singapore
The Government Organization of the Year
The Technology Leadership Award
The award for Government Transformation of the Year
Establish eGovFrame Open Community(http://open.egovframe.go.kr) (Aug.
2010)
Page l

42

Further Work

Achievement and Further work

Carry out further development of a batch function for


processing large amounts of data (Expect in 2012)
Through the open community operation and
vitalization, enhance the eGovFrame ecosystem for
Self-Motivated development
Currently, more than 2,500 domestic developers registered and participated

Promote the globalization of the eGovFrame


When exports Korean e-government systems, use as a standard development
environment, etc

Page l

43

Page l

44

Vous aimerez peut-être aussi