2. Table of contents
I Changes in the SW development environment
II What is a Framework?
III eGovFrame overview
IV Open Source Policy
V Common components
VI Mobile eGovFrame
VII eGovFrame adoption guide
VIII Achievement and Further work
Page l 2
3. Paradigm shift in software development Background
Progressing continuously to overcome SW industry’s 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
1960’s 2000’s
HW Centric Procedure language OOP Component Framework
Service Service Service Service
Component Component Component Component
(Reusable)
Framework
(Collection of API*))
Improve productivity Improve scalability Ensure performance Easy management
API*) : Application Program Interface
Page l 3
4. 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 4
5. 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 > < IS with SW framework >
Service application 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 5
6. SW Framework benefits What is a Framework?
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 6
7. 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 7
8. Use status of a framework What is 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
other
Spring Log4J iBatis JUnit
frameworks
Page l 8
9. What is eGovFrame? eGovFrame Overview
Pre-implemented basic functions standardized for e-Government system
development and operation
eGovFrame
Page l 9
10. Vision of eGovFrame eGovFrame Overview
Vision
Improve service quality of e-Government
& efficiency of ICT investment
Objectives
Reuse common Increase Reflect latest Resolve vendor Enhance SMEs
features Interoperability ICT trends dependency competitiveness
Strategies
Standardization Openness Community
• Establish SW framework • Approve the general use of • Propagate eGovFrame
standards for e-Government eGovFrame through the regular training
• Provide reliable technology • Open assets to the public & • Draw up a policy to vitalize
infrastructure encourage participation eGovFrame
Page l 10
11. A lot of challenges and issues (1/2) eGovFrame Overview
SW framework became a basic tool for e-Government
29%
(71% of e-Government system from 2004 to 2007).
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
12. A lot of challenges and issues (2/2) eGovFrame Overview
< Development with vendor’s frameworks> < Development with standard frameworks>
Request for
Customer H/W, S/W, Customer
Request for
architecture, application
and application development
RFP *) development RFP *)
Vendor Vendor Vendor Vendor Vendor Vendor Vendor Vendor
A B C D A B C D
Application 1 Application 2 Application 1 Application 1 Application 2 Application 1
Framework 1 Framework 2 Framework 3 Standard Framework
RFP *) : Request for proposal
Page l 12
13. 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
15. 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
Open Complicated Open
Source Aconfiguration
Source B
configuration
Complicated
Complicated
configuration eGovFrame
Open - remove duplication
- Adjustment of configuration
Open Source D
Source CConflict of functions
<Combination of open source frameworks> <eGovFrame>
OSS*) : Open Source Software
Page l 15
16. Extracting OSS for eGovFrame eGovFrame Overview
Define basic functions and architecture
Final Result
Function Analyze 3 big vendor’s frameworks and e-
Design Gov. projects from 2004 to 2011
45 open sources selected
54 functions and 229 common components
[Major open sources]
Best Open Source Selection
• Biz. transaction :
Define Open Source Selection Policy
Spring & 22
Policy Open Source Evaluation Process
Setting • Data :
License with no restriction on distribution iBatis, Hibernate &1
and use • Development tool :
Eclipse & 3
Evaluate candidate open sources(175) • Test tool :
Logical Junit & 5
Functional/non-functional requirements
Test • Distribution tool :
Constraints for integration and interfaces
Maven & 1
• Configuration Management
Physically test candidate open sources(85) tool : Subversion & 1
Physical •Mobile UX :
Basic functions
JQueryMobile&4
Test Non-functional requirements(SW Quality)
Page l 16
17. eGovFrame Concept eGovFrame Overview
Information System
Application
As core biz functions,
Biz1 Biz2 Biz3 develop using design and
Common Common source code (API) which
Biz 4
Biz 1 Biz 2 provided by eGovFrame
Generally used
eGovFrame
reusable
components Design
+ Based Source Code
(ex: calendar, (Architecture or Pattern Reusable asset,
notice board, etc) defining design and
Based S/W base source code
Middleware
which is repeatedly
used in information
DB
system project, as
OS based structure to
make a particular
H/W technology or
application
Page l 17
18. eGovFrame Composition Composition of eGovFrame
Consists of 4 environments, namely, development, runtime, operation, management
Development Runtime Operation Management
Environment Environment Environment Environment
Application Framework
SW Developers SW Applications
Operators Managers
Environment Description
Provides the implementation(coding, debugging), test, distribution and configuration
Development
management tools for the effective development of applications based on the
Environment eGovFrame Runtime Environment.
Runtime
Provides common runtime modules for running the SW applications
Environment
Operation Provides operational tools for monitoring and operating SW application based on
environment eGovFrame
Management
Provides management tools for maintaining and improving efficiently eGovFrame
Environment
Page l 18
19. eGovFrame Composition Functionalities Composition of eGovFrame
Runtime Environment Management
Presentation Layer UX Layer Business Logic Persistent Layer Integration Layer Environment
Layer
Ajax Support Internationalization
UX/UI Controller Biz. Process
Data Access DataSource Message Service
Operation
Component Management
Management Tool
MVC Security HTML5 CSS ORM Transaction Naming Service
Exception Handling Status Monitoring
JavaScript Module App
UI Adaptor Web Service
Framework
Foundation Layer
Compress
AOP Cache Encryption/Decryption Excel File Handling
/Decompress
File Upload/Download FTP Server Security ID Generation IoC Container Logging
Marshalling
Mail /Unmarshalling
Object Pooling Property Resource Scheduling
String Util XML Manipulation Development
Management Tool
Development Environment Operation Environment Version Management
Implementation Tool Test Tool Deployment Tool Conf. & Change Mgt. Monitoring Tool Administration Tool
Tool Issue Tracking
Code Generation Test Reporting Build Configuration Mgt. Monitoring Server Security
Management
Code Inspection Unit Test Deployment Change Management Reporting
Logging Management
Debug
Resource Management
Editor
Administration
Methodology & Template
Page l 19
20. General programming process Composition of eGovFrame
Adopt eclipse IDE*), and it consists of programming support tools from coding to
deployment which is the entire programming process
Developer PC Development Server
Succe Y
Coding Build Configuration Build
ss? Commit Checkout
management
• Code editing • Compile • Compile
• Testing • Packaging • Packaging
N
• Debugging
• Inspection
Operation Server
WAS restart Deploy
IDE*) : Integrated Development Environment
Page l 20
21. Eclipse IDE Overview Composition of eGovFrame
Integrated Menu for quick access, consisted of eGovFrame support plug-ins
Provide various editors such as DBIO, UML, ERD , etc
Page l 21
22. 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
23. Composition of the runtime environment Composition of eGovFrame
6 service groups, 38 services compose the runtime. Support MVC, DI,
AOP, etc based on Spring framework
Runtime Environment
Business Logic Integration
Presentation Layer UX Layer Persistent Layer Layer
Layer
Ajax Support Internationalization UX/UI Controller Component Biz. Process Data Access
TBD DataSource Message Service
Management
MVC Security HTML5 CSS3 ORM
TBD Transaction Naming Service
Exception
Handling
UI Adaptor JavaScript Module App Framework 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
24. 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
25. eGovFrame License Open Source Policy
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
BSD Apache
Criteria GPL LGPL MPL
License 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
26. Runtime environment OSS (1/3) Open Source Policy
Service group Service name OSS License
Ajax Support Ajax Tags 1.5 Apache License 2.0
Internationalization Spring 3.0.5 Apache License 2.0
Presentation MVC Spring 3.0.5 √ Apache License 2.0
layer
Apache Commons
Security Apache License 2.0
Validator 1.3.1
UI Adaptor -
Business Logic Process Control Web Flow 2.0 Apache License 2.0
layer Exception Handling Spring 3.0.5 √ Apache License 2.0
Data Access iBatis SQL Maps 2.3 √ Apache License 2.0
Persistent DataSource Spring 3.0.5 Apache License 2.0
layer 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
Integration Service -
layer
Web Service Interface Apache CXF 2.3.3 √ Apache License 2.0
√ : Extend functions, - : Self-Development
Page l 26
27. Runtime environment OSS(2/3) Open Source Policy
Service group 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
Foundation File Handling Jakarta Commons VFS 1.0 √ Apache License 2.0
Layer 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
28. Runtime environment OSS(3/3) Open Source Policy
Service group 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
Foundation Scheduling Quartz 1.8.5 Apache License 2.0
Layer Server Security Spring Security 2.0.4 √ Apache License 2.0
String Util Jakarta Regexp 1.5 √ Apache License 2.0
Apache Xerces 2.2.9 √
XML Manipulation Similar to Apache License
JDOM 1.1 √
√ : Extend functions, - : Self-Development
Page l 28
29. Development environment OSS Open Source Policy
Service group Service name OSS License
Code Generation - -
Code Inspection PMD 4.2 BSD-style
Debug Eclipse 3.4 EPL & EDL
Implementation Tool
Editor Eclipse 3.4 EPL & EDL
AmaterasUML 1.0.5, √ EPL 1.0
Methodology & Template
AmaterasERD 1.0.5 √
Ant, Apache License 2.0,
Test Reporting
Test Tool EMMA CPL
Unit Test JUnit, EasyMock, DbUnit CPL, MIT, LGPL 2.1
Maven 2.1, Apache License 2.0,
Build
Deployment Tool Hudson MIT
Deployment - -
Configuration Mgt. SubVersion Apache License 2.0
Conf. & Change Mgt. Tool
Change Mgt. jTrac √ Apache License 2.0
√ : Extend functions, - : Self-Development
Page l 29
30. Common Components
Common components
Common Components are a collection of reusable common modules in developing
application for e-Government projects
Past eGov. Application eGovFrame Current eGov. Application
Define A’ System B’ System C’ System
A System B System C System Reuse
Common
Components Common Application Application Application
Application
Application Application Components S/W S/W S/W
S/W
S/W S/W
Common B B
Common B
Common functions
functions
functions
B
B B
B
C C C C C
F/W F/W
F/W F/W F/W
H/W H/W H/W
Framework Apply H/W H/W H/W
Define Standard
Standard Framework
• Duplicate development of the Framework Management
same feature in each project • Development based on the
• Business dependency in eGovFrame Center standard framework
subsequent projects • Productivity and quality
• Limited opportunities for small Management system for improvement by reusing
business bid eGovFrame common components
Page l 30
31. Common Components
How to draw 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
32. Common Components
Common Components of eGovFrame
229 Common Components of the reusable software modules
Categories Components
8 Services including real name authentication and authority
Security
management
User authentication/directory
Technical Common Components
3 Services including general login and certificate login
service
51 Services including User Management, Counsel Management,
(139 Components)
User support
Survey Management, FAQ and Q&A
33 Services including Board, Club Management and Community
Collaboration
Management, mobile real-time notice, etc
25 Services including Common Code Management, Menu
System management
Management and Log Management
Integration 6 Services, including system access, mobile open API, etc
Statistics/Reporting 5 Services including Article and Connection Statistics
8 services including knowledge management, mobile photo album,
Digital asset management
etc
Utility Common Components
90 Services including Calendar and Format Conversion
(90 Components)
Page l 32
33. Common Components
Procedure for applying common components
1) Download eGovFrame 2) Install eGovFrame 3) Download Common Component
(Runtime/Development, etc) (Unzip files and configure properties)
개발자
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
34. 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
Runtime Env. Development Env.
Mobile Template-based 10 new mobile component
User eXperience(UX) Mobile
eGovFrame
Component
Env. code generation Convert 30 web common
Common
components to mobile
Presentation Biz. Logic Implementation
Dev. Env.
Runtime
Test Technical components
Env.
Persistence Integration
Deployment Web
Foundation Utility components
Change Mgt.
Mobile Web Mobile Web Mobile Web
Runtime Environment Development Environment Common Component
Page l 34
35. Mobile eGovFrame
How to develop a mobile service?
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
36. Mobile eGovFrame
Template-based mobile service
Template-based mobile services can be implemented by leveraging eGovFrame’s
mobile UX functions(runtime environment) and mobile common components
Page l 36
39. 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
40. Considerations for using eGovFrame eGovFrame Adoption Guide
Modification Descriptions
- Not allow any changes for interoperability
Runtime - Not allow any - If there is any enquiry of changes or
Environment changes improvements, it is possible after eGovFrame
Board review for the enquiry
- Allow changes
Development - There is no restrictions on the changes and
- Possible new
Environment additions
development
- There is no restrictions on the changes and
- Allow changes additions
Common
- Possible new
Components
development - New development must follow eGovFrame
architecture compliance
Page l 40
41. Technical Support eGovFrame Adoption Guide
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 Support Service Online On-site
Registration approval Request Support Support www.egovframe.go.kr
Check Tech Support
Supported Request If nessacery
Project eGovFrame Project eGovFrame
Manager Center(NIA) Manager Center(NIA)
Page l 41
42. 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
43. 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