X-Framework Consulting s EasyNSoft
목차 X-Framework 소개 X-Framework 장점 X-Framework 개발방법 Nexacro과 X-Framework 사용개발 Demo
X-Framework 소개 X-Framework 이란? X-Framework 은 투비소프트이수많은프로젝트경험을통하여축적한 Best Practices 의집합으로고객이필요로하는 J2EE 어플리케이션을최적화된아키덱쳐기반과환경, 그리고공통콤포넌트의재사용을통하여개발생산성향상과개발품질제고의목표를동시에달성할수있도록한다. Framework 기반설계및개발을통한유연성확보 검증된디자인패턴적용 Layered 아키텍처 Data Driven Method 사용 어댑터패턴, 팩토리패턴, 프락시 패턴, 빌더패턴등이미많은사례 를통해서유연성과성능이검증된 디자인패턴의사용 유연한구조의아키텍쳐스타일 - JPG( 주 1) 에서권장하는 16 개의 J2EE 아키텍쳐스타일패턴적용 - 레이어아키텍쳐스타일적용 - MVC 아키텍쳐스타일패턴적용 Separation of Concem 원칙 - Loose Couple, High Cohesion - 연관된모듈들간의종속관계를 Loose 하도록하기위한원칙 - 소프트웨어모듈들의종속관계를끊어줌으로써어떤모듈을수정해도이를재사용하는모듈의수정을최소화하는기법 어플리케이션설계시에이원칙을준수하도록표준화, 강제화 객체의생성을설정값에따라서동적으로할수있도록하는기법 Reflection 기술을사용 기능의확장시에기존소스의수정없이설정값만을변경해주고추가되는기능만을개발할수있음
X-Framework 소개 X-Framework 의특장점 소프트웨어재사용성향상유연한 SW 아키텍처의효과 비즈니스모듈간, 상호종속성을베재함으로써모듈의재사용성향상 유연한소프트웨어레이어설계로공통모듈의재사용성향상 Framework에서제공하는재사용모듈활용 기능의 확장용이 유지보수의 편리성 향후기술의변화등으로인한기능의확장용이 요구사항의변동등으로기능의확장이요구될때, 기존소스코드의수정을최소화하여확장이가능 동적인시스템설정의변경이가능 시스템기능의변경이용이 유연한구조의소프트웨어구조를구축함으로써향수성능의문제가발생했을경우에이에대한리펙토링이용이 4
X-Framework 소개 X-Framework 구성설명 Xframework은기존 framework 다르게 SI 프로젝트를위해만들었다. 어플리케이션개발자에게쉽운개발환경을제공해개발생산성을높이고, 자주변하는어플리케이션요건에적은노력으로빠른시간에대응하기쉽게만들어졌다. X-Framework 구성도 J2EE 기반메타 - 프레임워크 Servlet IOC(Inversion of Control) JTA/JDBC/JMS Web Application framework (Component) framework Persistence framework Monitoring Publish Batch Support Fundation framework Web Application Server JDK 1.4 이상 기본 JAVA JDK 의기본제공모듈 개발표준요소프레임워크 순수자바 (POJOs(Plain Old Java Object)) 기반 실질적인개발표준 WAS 의존성없음 메타프레임워크 요소프레임워크를통합 일괄설치와배포기능 추가되는라이브러리 웹-서비스지원
X-Framework 소개 X-Framework 기본서비스 UI Layer Controller Layer Dataset 생성지원 SQLMAP 자동맵핑지원 X-Framework 모니터링지원 HTML 사용어플리케이션요청처리 MiPltform 사용어플리케이션요청처리 사용자인증요청처리 X-Framework 서비스호출지원 X-Framework 파일업로드지원 UI 로그관리 파일관리요청처리 ( 업 / 다운로드 ) 마이플렛폼개발툴요청처리 비즈니스흐름제어처리 비즈니스서비스 Layer JNDI 지원서비스 SQLMAP 자동맵핑서비스 Log 관리서비스 Record 서비스 메일전송서비스 마이플렛폼개발지원서비스 서퀀스서비스 컨텍스트서비스 Category 서비스 메모리큐관리서비스 저널링서비스 저장소관리서비스 Console Writer 서비스 메시지관리서비스 File Writer 서비스 캐쉬관리서비스 JMS Writer 서비스 환경변수관리서비스 DB Writer 서비스 SQL 성능모니터링서비스 서비스관리자 서비스컨테이너 Persistence 서비스 Layer JDBC 연결관리서비스 JDBC Statement 서비스 SQLMAP 데이터맵핑서비스 다중트랜잭션처리서비스 JMS 리서너서비스 JMS 소비자서비스 Push 서비스 모니터링서비스 SQLMAP 관리서비스 SQLMAP 실행서비스 JMS 연결관리서비스 JMS 제공자서비스 SAP 연동서비스
X-Framework 소개 X-Framework 사용소프트웨어구성도 Nexacro 은 Engine 은클라이언트 PC 에서실행되고화면은요청할때마다 HTTP 프로토콜을이용해서버에서가져와실행하는구조이다. 엔진및화면등클라이언트에배포하는 Static 한자료는 WAS 의부하를줄이기위해 Web Server 에서배포하게한다. WAS 는 Xframework 서비스를통해 Business 를처리하는역할을한다. Nexacro Web Server Web Application Server Auto Updater Manager Cache Manager Nexacro Resource 마이플렛폼사용 Image Xframework Business DB Server DataSet Manager Protocol Manager Script Manager Component Manager Smart Client Engine 마이플렛폼공통 js 마이플렛폼배포화면 Nexacro 엔진배포모듈 Push Batch Job Scheduler WAS(JEUS) TCP/IP (HTTP) TCP/IP (HTTP) TCP/IP (JDBC)
X-Framework 소개 X-Framework 개발및운영환경구성도 Nexacro 프로그램은 PID 라는개발툴을이용해화면개발및테스트후서버에배포하여사용자화면에반영한다. Business 서비스는 Eclipse 와 Xframework Console 이용하여개발및테스트후서버에배포한다. Nexacro 과서버사이에데이터교환은 XML 및 Binary, 압축된 Binary 등을이용가능하다. Nexacro Engine Web Application Server HTTP (Sync/ Nexacro 사용자 Async) XML/ Compress Binary/ CSV Listener Business Context Business Selector Business Logging Persistenc e Lifecycle Manager SQLMAP C DB Connection Pool DB Server SP SP Nexacro 개발환경 SP Xframework Console Eclipse Nexacro PID Push JMS Queue 프로그램개발 Nexacro 화면 Xframework Configuration Application Log Files SQLMAP Files
X-Framework 소개 X-Framework 계층구조 Xframework은 HTTP 요청을받아 Filter를통해인증등을처리한후 Listener에서 Action을통해원하는 Business를 Components통해수행한다. Persistence Framework Layer에서 DB에대한작업을수행한다. JTA을통해다중 DB Transaction을수행한다. Xframework Data Base X-Internet / Web Reporting HTTP dofilter Filter Chain Web Framework doaction Listener Action (Component) Framework Life Cycle s Persistence Framework SQLMAP Database Executor JDBC (2PC XA) Lookup s Container Logging ERP Monitoring / Logging Adaptor Integration EAI / ESB (SOA) DW / CRM Mail / FTP Server
X-Framework 개발 Nexacro 및 Xframework 을이용한개발환경은 SQL 작성만으로조회및출력, 처리프로그램작성이가능할뿐만아니라, Java 를이용해 Xframework 서비스를작성해서이모든처리도가능한 2 중구조로설계가되어있다. 이미작성된서비스를이용하여 Java Coding 없이원하는비즈니스를구현할수있다 Report 디자이너와 Xframework Console, PID 를이용해 Java Coding 없이데이터가공후출력구현가능 Xfamework Console 및 Nexacro PID 이용해 Java Coding 없이구현가능 현황 개발방법 출력 입력 / 수정 / 삭제및 SP 호출프로그램을 Java Coding 없이혹은 Java Coding 이용 2 가지방식으로구현가능 처리
X-Framework 개발 개발종류 XPlatform Application 을 X-framework 와함께개발하면자바코딩하지않고도일부프로그램을개발할수있다. 개발종류 SQLMAP 작성 Xplatform 화면작성 SQLMAP 작성 JAVA 작성 Xplatform 화면작성
X-Framework 개발 개발적용범위 여러가지종류의처리를자바코딩없이할수있으며복잡한로직은자바코딩을통해서처리한다. 조회 No Java Coding SQLMAP 작성 Xplatform Coding 1 건저장 n 건저장 개발종류 1 건및 n 건저장 SP 연동 Java coding 프로세스성처리 SQLMAP 작성 JAVA Coding Xplatform Coding
X-Framework 개발 개발절차 Xframework Sqlmanager 는 SQLMAP 을작성하고관리하는역할을주로한다. SQLMAP 은자바코딩없이마이플렛폼스크립트 만가지고실행할수있게 Default Xframework 서비스를제공하면주로현황및출력은이서비스를대부분사용한다. Eclipse 실행 http://trueinfo.no-ip.info:8080/xfw_sqlmanager/ Sql Manager open SQLMAP 작성 SQLMAP 테스트 Java Coding No Yes Xframework 서비스작성 Nexacro 화면작성 Nexacro PID 공통스크립트적용 Xframework 서비스호출 화면테스트 Java Coding을하지않은경우는 Default 를호출 > 자동실행에필요한정보공통스크립트를통해서버에전달 Java Conding을통한 Xfamework 작성시는해당 를직접호출 > 모든비즈니스로직은코딩으로처리
X-Framework 개발 No Java Coding 조회버튼클릭 NexacroSupport Servlet DatasetSqlExecutor ClearActionInfo Nexacro Context Default Data Base AddActionInfo PlatformRequest PlatformReponse DatasetSqlRequest DatasetSqlResult Call CallBack Mangement Factory DefaultAction SQLMAP Files 화면 CallBack showmessage Logger JMSWriter JMS Queue 데이터디스플레이 FileWriter Application Log Files
X-Framework 개발 Java Coding 처리버튼클릭 Nexacro Support Servlet DatasetSqlExecutor Call Nexacro Context PlatformRequest DevA DatasetSqlRequest Data Base PlatformReponse CallBack DatasetSqlResult Mangement Factory 화면 CallBack DevAction SQLMAP Files showmessage Logger JMS Queue JMSWriter 데이터디스플레이 FileWriter Application Log Files
Architecture 예시 X-Framework 의 DB Connection 처리 Connection 은개발자가작성하는 가상속받는클래스 AbstracBusiness 에서 Transaction 이라는클래스에서관리됨 WAS 서버 X-Framework DB Connection DB POOL DB Server Nexacro Support Servlet SqlRequest SqlExecutor 8) SQL 실행요청 1) 생성 DefaultAction 상속 2) 처리요청 6) SQL 생성 Default Default Default 상속 7) SQL 실행 3) Connection 요청 10) Connection Pool 반환 4) Connection 생성 ConnectionFactory AbstractAction 9) Connection 종료 AbstractBusiness 5) Connection 정보설정 Transaction Manager -16-
Architecture 예시 X-Framework 의 Transaction 처리 AbstractAction 을상속받아서작성할경우, Exception 발생이외의경우는 Commit 모드로처리된다. Rollback 시켜야할경우에는 Exception 을상위로 Throws 하도록처리해야함. WAS 서버 X-Framework DB Connection DB POOL DB Server Nexacro Support Servlet ConnectionFactory 1) 생성 DefaultAction 상속 2) 처리요청 Default Default Default 상속 AbstractAction AbstractBusiness 3) Connection 요청 6) Commit or Rollback 8) Close 4) Connection 정보설정 8) Commit or Rollback Transaction Manager 9) Connection Pool 반환 Thread 별 Transaction 정보관리 -17-
Architecture 예시 X-Framework 의 Logging 처리 Log 는여러개를설정할수있으며, LogCategory 역시여러개를설정할수있음 WAS 서버 Nexacro Support Servlet 1) 생성 Memory Queue 5) Notify X-Framework LogRecordFactory 7) 로그레코드생성 LogCategory #1 RecordWriter 구현 DBWriter JMSWrtiter DB Server JMS Queue DefaultAction 2) 로깅요청 4) 로깅 Log 6) 로깅 8) 로깅요청 FileWriter XXXWriter ALL_2008-xx-xx.log 상속 LogCategory #2 AbstractAction 상속 3) 로깅요청 LogCategory #n 8) 로깅요청 FileWriter XXXWriter Debug_2008-xx-xx.log Base
X-Framework 장점 비교항목 Framework X-Framework 타 Framework 비고 Nexacro 지원 Nexacro 의 Dataset 셋을활용 UI 및 Java Application 표준 API 제공 Nexacro 개발툴과연계하여서버에서작성한 SQL 정보를기준으로 Dataset 자동생성 순수하게 Nexacro Dataset 을활용하므로 WAS 메모리효율증가로적은용량의서버로많은사용자를지원할수있음 프레임웍과통합된 First Row 지원으로대용량데이터조회시도 WAS 메모리사용을최소화할수있음 Nexacro 을활용한다양한 Application Pattern 제공 Nexacro 을활용한많은사이트적용으로고객들의많은요구사항이적용되어있음 HTML Base 웹어플리케이션에최적화되어있어 추가적인커스트마이징이필요함 커스터마이징용이성 외부패키지를사용하지않고모든소스가직접만들어져쉽게이해하고커스트마이징할수있음 20 개이상의패키지들이모여서만들어져소스를이해하기힘들고커스트마이징이어려움
X-Framework 장점 비교항목 Framework X-Framework 타 Framework 비고 JAVA 기술의존도 JDK 1.4 이상을사용하는모든순수자바어플리케이션및웹어플리케이션 (WAS 사용 ) 에서사용가능 대부분의 Framework 들이많은공개용패키지를활용하여만들어져이들패키지사이에버전이일치하지않으면오류가발생할확률이높고 Java 버전에상당히민감함. 성능및모니터링 JMX 및자체모니터링기능을통해어플리케이션을모니링할수있음 파일및 DB, JMS 등으로옵션변경으로싶게 로깅위치를추가할수있음 Push 를이용해 Application 오류등의 알람기능을제공할수있음 XML 작성시많은오브젝트를생성하지않게설계되어있고, 대용량의데이터처리를서버에부담주지않고조회할수있는기능을제공함 XML 작성시오브젝트를많이생성할가능성이높으며이것을피하기위해서는핵심모듈의커스트마이징이요구되고대용량의데이터처리에는부적합한구조임