SlideShare une entreprise Scribd logo
1  sur  28
웹기반
AJAX개발을
위한
프레임워크 –
메타웍스3
유엔진 오픈소스 BPM 프로젝트
장진영
jyjang@uengine.org

                     www.metaworks3.org
Concurrent Web-based Applications :




                                      www.metaworks3.org
You are the mother, How about your Object ?

Mother cares All the things?                   Do that by himself ?




                                                                      www.metaworks3.org
Introducing Metaworks3 –




 •    Metaworks is ‘metadata-oriented framework’
 •    Concurrent Web-based (and mobile) Applications are degrading
      the Object’s own property – Cohesion of metadata.
 •    For example, you need to keep the properties’ type as same value
      in DHTML scripts, Server Object, Data Object(Hibernate), and the
      DDL script as well.
 •    Centralizing metadata and behaviors – it’s Object-Oriented
      Manner itself!
 •    Metaworks automatically synchronizes(or hides the operation) …
      •   Stubs for calling Javascript to the server function (using DWR)
      •   DAO object and relational query (not completely, SQL is still good)
      •   Keeps intuitive and Sophisticated Programming Model… Don’t be a
          dog!
 •    By managing the metadata


                                                                       www.metaworks3.org
문제:
 – 흩어진 메타데이터


        General Approach:                                       Using Metaworks3:
Spring MVC, JSON, jQuery, Hibernate

                    meta
                    data                                                   Controlle
                       Domain                                                 r
        Controlle
                        class
           r            (java
                       version)                        View                                      DAO


                       You have to
        meta        Synchronize the gap   meta
                                                       Metaworks                            Metaworks
View    data                       DAO    data
                                                  Synchronizes the Proxy
                                                                             meta
                                                                                       Synchronizes the Proxy
                                                                             data
                                      Domain
        Domain
                                       class                               Domain
       class (JS
                                     (Hibernat                              Class
        version)
                                     e version)                            (Java)



                                                                                            www.metaworks3.org
No more words, Seeing is believing:
 #Domain Class (Posting.java)                                 #Presentation (Posting.ejs)

 @Table(name = “fb_posting”)
 public class Posting extends MetaworksObject<IPosting>        <%=fields.document.here() %>
 implements IPosting{
                                                              <%
        String document;                                             if(mw3.when == mw3.WHEN_EDIT){
                @Id                                           %>
                public String getDocument() {                        <%=methods.share.here()%>
                        return document;                      <%
                }                                                    }
                public void setDocument(String document) {    %>
                        this.document = document;
                }
        @ServiceMethod
        public void share() throws Exception{
                createDatabaseMe();
        }
 }

#Application (application.html)                              #Result
<script>
        mw3.setContextWhen(mw3.WHEN_EDIT);
        mw3.locateObject(
             { document:"",
               __className:
"org.metaworks.example.Posting”
},
               null,
               'newEntry’
        );
</script>
...
<div id=‘newEntry’></div>
                                                                                                      www.metaworks3.org
FaceBook example
Steps:
1. Recognizing what is (was) ‘Object’ in your
   application
2. Modeling the Objects
3. Face making and Context-awaring for the
   Objects
4. Creating Application with highly-abstracted
   programming Model – almost natural language!
 Humanity-Recovery !

                                           www.metaworks3.org
Step 1.
Recognizing what is (was)
‘Object’ in your application




                               www.metaworks3.org
1. Recognizing Objects in facebook




   Person object           Posting object   Doc object   Group object
                                                            www.metaworks3.org
1. Recognizing Objects in facebook
1.1. Person objects in different ‘Context’




   Where: NORMAL                  Where: MINIMISED   Where: MEDIUM
                                                                 www.metaworks3.org
1. Recognizing Objects in facebook
1.2. Posting objects in different ‘Context’




           Where: NORMAL                  Where: NORMAL   Where: MINIMISED
           When: EDIT                     When: VIEW      When: EDIT
                                                                  www.metaworks3.org
Step 2.
Modeling the ‘Cohesive’
Objects




                          www.metaworks3.org
2. Modeling Objects - Posting object Design –
2.1. create interface

import org.metaworks.dao.IDAO;

public interface IPosting extends IDAO{

       public Person getWriter(); // 작성자
       public void setWriter(Person writer);

       public String getDocument(); // 글
       public void setDocument(String document);

       public boolean isLikeIt(); // 좋아요 여부
       public void setLikeIt(boolean likeIt);

}




                                                   www.metaworks3.org
2. Modeling Objects - Posting object Design –
2.2. add metadata

import org.metaworks.dao.IDAO;

@Table(name="Posting")
public interface IPosting extends IDAO{

       public Person getWriter();
       public void setWriter(Person writer);

       @Id
       public String getDocument();
       public void setDocument(String document);

       public boolean isLikeIt();
       public void setLikeIt(boolean likeIt);

       @ServiceMethod
       public void post() throws Exception;

       @ServiceMethod
       public void like() throws Exception;
}




                                                   www.metaworks3.org
2. Modeling Objects – Posting object
2.3. create implementation object

public class Posting extends Database<IPosting> implements IPosting{

       Person writer;
              public Person getWriter() {
                      return writer;
              }
              public void setWriter(Person writer) {
                      this.writer = writer;
              }

       String document;
               public String getDocument() {
                       return document;
               }
               public void setDocument(String document) {
                       this.document = document;
               }

       boolean likeIt;
             public boolean isLikeIt() {
                       return likeIt;
             }
             public void setLikeIt(boolean likeIt) {
                       this.likeIt = likeIt;
             }
}




                                                                       www.metaworks3.org
2. Modeling Objects - Posting object
2.4. add behaviors
public class Posting extends Database<IPosting> implements IPosting{

       Person writer;
              public Person getWriter() {
                      return writer;
              }
              public void setWriter(Person writer) {
                      this.writer = writer;
              }

       String document;
               public String getDocument() {
                       return document;
               }
               public void setDocument(String document) {
                       this.document = document;
               }

       boolean likeIt;
             public boolean isLikeIt() {
                       return likeIt;
             }
             public void setLikeIt(boolean likeIt) {
                       this.likeIt = likeIt;
             }

       public void post() throws Exception{
               createDatabaseMe();
       }
       public void like() throws Exception{
               databaseMe().setLikeIt(true); //will automatically synchronize the value
       }
}                                                                                         www.metaworks3.org
Step 3
Face making and Context-awaring for
the Objects




                                      www.metaworks3.org
3. Face Making
3.1. creating ‘Face’ – Posting.ejs
 <table>

         <tr>
                 <td><%=fields.writer.here() %></td>
                 <td><%=fields.document.here() %>

 <%
         if(value.likeIt){
 %>
 You like this
 <% }else{%>

 <a onclick=<%=methods.like.caller()%>>좋아요</a>
 <%}%>

                 </td>

         </tr>

 </table>




                                                       www.metaworks3.org
3. Face Making
3.1. considering the Contexts – WHEN_EDIT
<%
          if(mw3.when == mw3.WHEN_EDIT){
                 value.document = 'Share your status...';
          }
%>
<table>
          <tr>
                   <td><%=fields.writer.here()%></td>
                   <td><%=fields.document.here()%>
<%
          if(mw3.when == mw3.WHEN_EDIT){
%>
          <%=methods.post.here()%>
<%
          }

         if(value.likeIt){
%>
You like this
<% }else{%>
         <%=methods.like.here()%>
<%}%>

<%
          if(mw3.when == mw3.WHEN_EDIT){
%>
                   <input type=button value="save">
<%
          }else{
%>
                   <input type=button onclick="<%=editFunction%>" value="edit"a>
<%
          }
%>
                   </td>
        </tr>
</table>
                                                                                   www.metaworks3.org
Next, Do 1~3 for Person object – Person.java & Person.ejs
#Person.java
                                                         #Person.ejs
public interface Person extends IDAO{
                                                         <%if (!value){%>
       @org.metaworks.Metadata(isKey = true)             Writer is not specified
       public String getName();                          <%}else{%>
       public void setName(String name);
                                                         <img src="<%=value.portraitURL%>" width=50><br>
       public int getAge();                              <b><%=value.name%></b>
       public void setAge(int age);
                                                         <%}%>
       @org.metaworks.Metadata(face="faces/image.ejs”)
       public String getPortraitURL();
       public void setPortraitURL(String portraitURL);

       public boolean isMyFried();
       public void setMyFried(boolean isMyFried);
}




                                                                                                    www.metaworks3.org
Step 4
Creating Application with
highly-abstracted
programming Model –
Write a Novel or Poet, not
the alien language




                             www.metaworks3.org
4. Now, create the Application


          <script type="text/javascript">


                  lastEntryId = new MetaworksObject(
                           {       document:"",
                                   writer: loginUser,
                                   __className: "org.metaworks.example.Posting"
                           },

                           'newEntry'

                  );

          </script>

          <div id=”newEntry"></div>




                                                                                  www.metaworks3.org
Result




         www.metaworks3.org
Applications




www.metaworks3.org website Social CMS

                                        www.metaworks3.org
Applications




ProcessCodi Cloud IDE
                                       www.metaworks3.org
Applications




ProcessCodi Enterprise 2.0 Platform

                                             www.metaworks3.org
Conclusion
• No duplicated metadata mapping
  e.g. JSON object mapping in Spring Controller and DAO
  mapping for Hibernate.
 No errors from duplicated metadata source.
• Cohesive User Interface management by EJS-
  object mapping.
• Intuitive Programming Model – model and
  metadata-driven, not implementation-driven.

Only thing you have to do is… just forgetting the old
manners!

                                                          www.metaworks3.org
All the Source Code available here:
 www.metaworks3.org

 it’s very early stage now! You are welcomed to
 participate this Open Source Project.




                                                  www.metaworks3.org

Contenu connexe

Tendances

Easy data-with-spring-data-jpa
Easy data-with-spring-data-jpaEasy data-with-spring-data-jpa
Easy data-with-spring-data-jpaStaples
 
Spring Data JPA from 0-100 in 60 minutes
Spring Data JPA from 0-100 in 60 minutesSpring Data JPA from 0-100 in 60 minutes
Spring Data JPA from 0-100 in 60 minutesVMware Tanzu
 
Design Summit - Navigating the ManageIQ Object Model - Brad Ascar
Design Summit - Navigating the ManageIQ Object Model - Brad AscarDesign Summit - Navigating the ManageIQ Object Model - Brad Ascar
Design Summit - Navigating the ManageIQ Object Model - Brad AscarManageIQ
 
Bringing the light to the client with KnockoutJS
Bringing the light to the client with KnockoutJSBringing the light to the client with KnockoutJS
Bringing the light to the client with KnockoutJSBoyan Mihaylov
 
Data Binding and Data Grid View Classes
Data Binding and Data Grid View ClassesData Binding and Data Grid View Classes
Data Binding and Data Grid View ClassesArvind Krishnaa
 
Session06 handling xml data
Session06  handling xml dataSession06  handling xml data
Session06 handling xml datakendyhuu
 
Spring framework part 2
Spring framework part 2Spring framework part 2
Spring framework part 2Haroon Idrees
 
Hibernate Tutorial
Hibernate TutorialHibernate Tutorial
Hibernate TutorialSyed Shahul
 
Javascript closures
Javascript closures Javascript closures
Javascript closures VNG
 
Oop features java presentationshow
Oop features java presentationshowOop features java presentationshow
Oop features java presentationshowilias ahmed
 
Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!Oliver Gierke
 
Map-Reduce and Apache Hadoop
Map-Reduce and Apache HadoopMap-Reduce and Apache Hadoop
Map-Reduce and Apache HadoopSvetlin Nakov
 
Js info vis_toolkit
Js info vis_toolkitJs info vis_toolkit
Js info vis_toolkitnikhilyagnic
 

Tendances (20)

Easy data-with-spring-data-jpa
Easy data-with-spring-data-jpaEasy data-with-spring-data-jpa
Easy data-with-spring-data-jpa
 
Spring Data JPA from 0-100 in 60 minutes
Spring Data JPA from 0-100 in 60 minutesSpring Data JPA from 0-100 in 60 minutes
Spring Data JPA from 0-100 in 60 minutes
 
Simple Data Binding
Simple Data BindingSimple Data Binding
Simple Data Binding
 
Javabean1
Javabean1Javabean1
Javabean1
 
Design Summit - Navigating the ManageIQ Object Model - Brad Ascar
Design Summit - Navigating the ManageIQ Object Model - Brad AscarDesign Summit - Navigating the ManageIQ Object Model - Brad Ascar
Design Summit - Navigating the ManageIQ Object Model - Brad Ascar
 
Bringing the light to the client with KnockoutJS
Bringing the light to the client with KnockoutJSBringing the light to the client with KnockoutJS
Bringing the light to the client with KnockoutJS
 
Spring Data JPA
Spring Data JPASpring Data JPA
Spring Data JPA
 
Data Binding and Data Grid View Classes
Data Binding and Data Grid View ClassesData Binding and Data Grid View Classes
Data Binding and Data Grid View Classes
 
Session06 handling xml data
Session06  handling xml dataSession06  handling xml data
Session06 handling xml data
 
04 Data Access
04 Data Access04 Data Access
04 Data Access
 
Spring framework part 2
Spring framework part 2Spring framework part 2
Spring framework part 2
 
Hibernate Tutorial
Hibernate TutorialHibernate Tutorial
Hibernate Tutorial
 
Javascript closures
Javascript closures Javascript closures
Javascript closures
 
Oop features java presentationshow
Oop features java presentationshowOop features java presentationshow
Oop features java presentationshow
 
Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!Data access 2.0? Please welcome: Spring Data!
Data access 2.0? Please welcome: Spring Data!
 
Java beans
Java beansJava beans
Java beans
 
Map-Reduce and Apache Hadoop
Map-Reduce and Apache HadoopMap-Reduce and Apache Hadoop
Map-Reduce and Apache Hadoop
 
Js info vis_toolkit
Js info vis_toolkitJs info vis_toolkit
Js info vis_toolkit
 
Introduction to hibernate
Introduction to hibernateIntroduction to hibernate
Introduction to hibernate
 
Ecom lec4 fall16_jpa
Ecom lec4 fall16_jpaEcom lec4 fall16_jpa
Ecom lec4 fall16_jpa
 

En vedette

Beyond Process, Sharing Of Process
Beyond  Process,  Sharing  Of  ProcessBeyond  Process,  Sharing  Of  Process
Beyond Process, Sharing Of ProcessuEngine Solutions
 
[8]viii.process as a service platform process codi
[8]viii.process as a service platform   process codi[8]viii.process as a service platform   process codi
[8]viii.process as a service platform process codiuEngine Solutions
 
Jco 제 12회 자바컨퍼런스 - PaaS for Business Expert (부재: GAE 오픈소스로 따라잡기)
Jco 제 12회 자바컨퍼런스 - PaaS for Business Expert (부재: GAE 오픈소스로 따라잡기)Jco 제 12회 자바컨퍼런스 - PaaS for Business Expert (부재: GAE 오픈소스로 따라잡기)
Jco 제 12회 자바컨퍼런스 - PaaS for Business Expert (부재: GAE 오픈소스로 따라잡기)uEngine Solutions
 
Process As A Service Platform Process Codi For Sharing
Process  As  A  Service  Platform    Process  Codi For SharingProcess  As  A  Service  Platform    Process  Codi For Sharing
Process As A Service Platform Process Codi For SharinguEngine Solutions
 
메타웍스3 프레임워크의 교육적 활용
메타웍스3 프레임워크의 교육적 활용메타웍스3 프레임워크의 교육적 활용
메타웍스3 프레임워크의 교육적 활용uEngine Solutions
 
[6]vi.패스트캣 컨퍼런스 발표자료
[6]vi.패스트캣 컨퍼런스 발표자료[6]vi.패스트캣 컨퍼런스 발표자료
[6]vi.패스트캣 컨퍼런스 발표자료uEngine Solutions
 
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함 메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함 uEngine Solutions
 
제4회 아키텍트대회 발표자료 유엔진솔루션즈 장진영 V1.2[1] 110624
제4회 아키텍트대회 발표자료 유엔진솔루션즈 장진영 V1.2[1] 110624제4회 아키텍트대회 발표자료 유엔진솔루션즈 장진영 V1.2[1] 110624
제4회 아키텍트대회 발표자료 유엔진솔루션즈 장진영 V1.2[1] 110624uEngine Solutions
 
Business process approach and the future of bpm u engine jinyoung jang - pa...
Business process approach and the future of bpm   u engine jinyoung jang - pa...Business process approach and the future of bpm   u engine jinyoung jang - pa...
Business process approach and the future of bpm u engine jinyoung jang - pa...uEngine Solutions
 
리얼타임 소셜 비즈니스 플랫폼 제출용
리얼타임 소셜 비즈니스 플랫폼 제출용리얼타임 소셜 비즈니스 플랫폼 제출용
리얼타임 소셜 비즈니스 플랫폼 제출용uEngine Solutions
 
Social BPM based e-Learning Scenario and ProcessCodi
Social BPM based e-Learning Scenario and ProcessCodiSocial BPM based e-Learning Scenario and ProcessCodi
Social BPM based e-Learning Scenario and ProcessCodiuEngine Solutions
 
유엔진 Bpm 사용자메뉴얼 v 3.5.4
유엔진 Bpm 사용자메뉴얼 v 3.5.4유엔진 Bpm 사용자메뉴얼 v 3.5.4
유엔진 Bpm 사용자메뉴얼 v 3.5.4uEngine Solutions
 
[10]x.social commerce 구축 시나리오 process codi
[10]x.social commerce 구축 시나리오   process codi[10]x.social commerce 구축 시나리오   process codi
[10]x.social commerce 구축 시나리오 process codiuEngine Solutions
 
스마트워크 소셜 비즈니스 프로세스 패턴 110608
스마트워크 소셜 비즈니스 프로세스 패턴 110608스마트워크 소셜 비즈니스 프로세스 패턴 110608
스마트워크 소셜 비즈니스 프로세스 패턴 110608uEngine Solutions
 
OCE - Cno 2014 private sector oriented open paas oce
OCE - Cno 2014 private sector oriented open paas   oceOCE - Cno 2014 private sector oriented open paas   oce
OCE - Cno 2014 private sector oriented open paas oceuEngine Solutions
 
오픈테크넷 발표자료 B paa_s 구축을 위한 오픈소스_유엔진솔루션즈
오픈테크넷 발표자료 B paa_s 구축을 위한 오픈소스_유엔진솔루션즈오픈테크넷 발표자료 B paa_s 구축을 위한 오픈소스_유엔진솔루션즈
오픈테크넷 발표자료 B paa_s 구축을 위한 오픈소스_유엔진솔루션즈uEngine Solutions
 
Essencia ui ux specification 2014 10 15
Essencia ui ux specification 2014 10 15Essencia ui ux specification 2014 10 15
Essencia ui ux specification 2014 10 15uEngine Solutions
 

En vedette (18)

Beyond Process, Sharing Of Process
Beyond  Process,  Sharing  Of  ProcessBeyond  Process,  Sharing  Of  Process
Beyond Process, Sharing Of Process
 
[8]viii.process as a service platform process codi
[8]viii.process as a service platform   process codi[8]viii.process as a service platform   process codi
[8]viii.process as a service platform process codi
 
Jco 제 12회 자바컨퍼런스 - PaaS for Business Expert (부재: GAE 오픈소스로 따라잡기)
Jco 제 12회 자바컨퍼런스 - PaaS for Business Expert (부재: GAE 오픈소스로 따라잡기)Jco 제 12회 자바컨퍼런스 - PaaS for Business Expert (부재: GAE 오픈소스로 따라잡기)
Jco 제 12회 자바컨퍼런스 - PaaS for Business Expert (부재: GAE 오픈소스로 따라잡기)
 
Process As A Service Platform Process Codi For Sharing
Process  As  A  Service  Platform    Process  Codi For SharingProcess  As  A  Service  Platform    Process  Codi For Sharing
Process As A Service Platform Process Codi For Sharing
 
메타웍스3 프레임워크의 교육적 활용
메타웍스3 프레임워크의 교육적 활용메타웍스3 프레임워크의 교육적 활용
메타웍스3 프레임워크의 교육적 활용
 
[6]vi.패스트캣 컨퍼런스 발표자료
[6]vi.패스트캣 컨퍼런스 발표자료[6]vi.패스트캣 컨퍼런스 발표자료
[6]vi.패스트캣 컨퍼런스 발표자료
 
[3]iii.2011 iaasjinotech
[3]iii.2011 iaasjinotech[3]iii.2011 iaasjinotech
[3]iii.2011 iaasjinotech
 
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함 메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
메타웍스3 워크숍 - 개념소개 및 예제, 그리고 간단한 API문서포함
 
제4회 아키텍트대회 발표자료 유엔진솔루션즈 장진영 V1.2[1] 110624
제4회 아키텍트대회 발표자료 유엔진솔루션즈 장진영 V1.2[1] 110624제4회 아키텍트대회 발표자료 유엔진솔루션즈 장진영 V1.2[1] 110624
제4회 아키텍트대회 발표자료 유엔진솔루션즈 장진영 V1.2[1] 110624
 
Business process approach and the future of bpm u engine jinyoung jang - pa...
Business process approach and the future of bpm   u engine jinyoung jang - pa...Business process approach and the future of bpm   u engine jinyoung jang - pa...
Business process approach and the future of bpm u engine jinyoung jang - pa...
 
리얼타임 소셜 비즈니스 플랫폼 제출용
리얼타임 소셜 비즈니스 플랫폼 제출용리얼타임 소셜 비즈니스 플랫폼 제출용
리얼타임 소셜 비즈니스 플랫폼 제출용
 
Social BPM based e-Learning Scenario and ProcessCodi
Social BPM based e-Learning Scenario and ProcessCodiSocial BPM based e-Learning Scenario and ProcessCodi
Social BPM based e-Learning Scenario and ProcessCodi
 
유엔진 Bpm 사용자메뉴얼 v 3.5.4
유엔진 Bpm 사용자메뉴얼 v 3.5.4유엔진 Bpm 사용자메뉴얼 v 3.5.4
유엔진 Bpm 사용자메뉴얼 v 3.5.4
 
[10]x.social commerce 구축 시나리오 process codi
[10]x.social commerce 구축 시나리오   process codi[10]x.social commerce 구축 시나리오   process codi
[10]x.social commerce 구축 시나리오 process codi
 
스마트워크 소셜 비즈니스 프로세스 패턴 110608
스마트워크 소셜 비즈니스 프로세스 패턴 110608스마트워크 소셜 비즈니스 프로세스 패턴 110608
스마트워크 소셜 비즈니스 프로세스 패턴 110608
 
OCE - Cno 2014 private sector oriented open paas oce
OCE - Cno 2014 private sector oriented open paas   oceOCE - Cno 2014 private sector oriented open paas   oce
OCE - Cno 2014 private sector oriented open paas oce
 
오픈테크넷 발표자료 B paa_s 구축을 위한 오픈소스_유엔진솔루션즈
오픈테크넷 발표자료 B paa_s 구축을 위한 오픈소스_유엔진솔루션즈오픈테크넷 발표자료 B paa_s 구축을 위한 오픈소스_유엔진솔루션즈
오픈테크넷 발표자료 B paa_s 구축을 위한 오픈소스_유엔진솔루션즈
 
Essencia ui ux specification 2014 10 15
Essencia ui ux specification 2014 10 15Essencia ui ux specification 2014 10 15
Essencia ui ux specification 2014 10 15
 

Similaire à 웹기반 Ajax개발을 위한 프레임워크 - metaworks3 (메타웍스3)

No Coding Necessary: Building Confluence User Macros Cheat Sheet - Atlassian ...
No Coding Necessary: Building Confluence User Macros Cheat Sheet - Atlassian ...No Coding Necessary: Building Confluence User Macros Cheat Sheet - Atlassian ...
No Coding Necessary: Building Confluence User Macros Cheat Sheet - Atlassian ...Atlassian
 
比XML更好用的Java Annotation
比XML更好用的Java Annotation比XML更好用的Java Annotation
比XML更好用的Java Annotationjavatwo2011
 
Spring dependency injection
Spring dependency injectionSpring dependency injection
Spring dependency injectionsrmelody
 
Cordova training : Day 4 - Advanced Javascript
Cordova training : Day 4 - Advanced JavascriptCordova training : Day 4 - Advanced Javascript
Cordova training : Day 4 - Advanced JavascriptBinu Paul
 
Symfony Day 2010 Doctrine MongoDB ODM
Symfony Day 2010 Doctrine MongoDB ODMSymfony Day 2010 Doctrine MongoDB ODM
Symfony Day 2010 Doctrine MongoDB ODMJonathan Wage
 
Entity Framework Database and Code First
Entity Framework Database and Code FirstEntity Framework Database and Code First
Entity Framework Database and Code FirstJames Johnson
 
MVC pattern for widgets
MVC pattern for widgetsMVC pattern for widgets
MVC pattern for widgetsBehnam Taraghi
 
Devoxx08 - Nuxeo Core, JCR 2, CMIS
Devoxx08 - Nuxeo Core, JCR 2, CMIS Devoxx08 - Nuxeo Core, JCR 2, CMIS
Devoxx08 - Nuxeo Core, JCR 2, CMIS Nuxeo
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android InfrastructureAlexey Buzdin
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android InfrastructureC.T.Co
 
Entity Framework: Nakov @ BFU Hackhaton 2015
Entity Framework: Nakov @ BFU Hackhaton 2015Entity Framework: Nakov @ BFU Hackhaton 2015
Entity Framework: Nakov @ BFU Hackhaton 2015Svetlin Nakov
 
Modern Android app library stack
Modern Android app library stackModern Android app library stack
Modern Android app library stackTomáš Kypta
 
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...SPTechCon
 
Data Abstraction for Large Web Applications
Data Abstraction for Large Web ApplicationsData Abstraction for Large Web Applications
Data Abstraction for Large Web Applicationsbrandonsavage
 
Powerful persistence layer with Google Guice & MyBatis
Powerful persistence layer with Google Guice & MyBatisPowerful persistence layer with Google Guice & MyBatis
Powerful persistence layer with Google Guice & MyBatissimonetripodi
 

Similaire à 웹기반 Ajax개발을 위한 프레임워크 - metaworks3 (메타웍스3) (20)

JNDI
JNDIJNDI
JNDI
 
No Coding Necessary: Building Confluence User Macros Cheat Sheet - Atlassian ...
No Coding Necessary: Building Confluence User Macros Cheat Sheet - Atlassian ...No Coding Necessary: Building Confluence User Macros Cheat Sheet - Atlassian ...
No Coding Necessary: Building Confluence User Macros Cheat Sheet - Atlassian ...
 
比XML更好用的Java Annotation
比XML更好用的Java Annotation比XML更好用的Java Annotation
比XML更好用的Java Annotation
 
Spring dependency injection
Spring dependency injectionSpring dependency injection
Spring dependency injection
 
Cordova training : Day 4 - Advanced Javascript
Cordova training : Day 4 - Advanced JavascriptCordova training : Day 4 - Advanced Javascript
Cordova training : Day 4 - Advanced Javascript
 
Symfony Day 2010 Doctrine MongoDB ODM
Symfony Day 2010 Doctrine MongoDB ODMSymfony Day 2010 Doctrine MongoDB ODM
Symfony Day 2010 Doctrine MongoDB ODM
 
Libertyvasion2010
Libertyvasion2010Libertyvasion2010
Libertyvasion2010
 
La sql
La sqlLa sql
La sql
 
Entity Framework Database and Code First
Entity Framework Database and Code FirstEntity Framework Database and Code First
Entity Framework Database and Code First
 
MVC pattern for widgets
MVC pattern for widgetsMVC pattern for widgets
MVC pattern for widgets
 
ExSchema
ExSchemaExSchema
ExSchema
 
Devoxx08 - Nuxeo Core, JCR 2, CMIS
Devoxx08 - Nuxeo Core, JCR 2, CMIS Devoxx08 - Nuxeo Core, JCR 2, CMIS
Devoxx08 - Nuxeo Core, JCR 2, CMIS
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android Infrastructure
 
Overview of Android Infrastructure
Overview of Android InfrastructureOverview of Android Infrastructure
Overview of Android Infrastructure
 
Entity Framework: Nakov @ BFU Hackhaton 2015
Entity Framework: Nakov @ BFU Hackhaton 2015Entity Framework: Nakov @ BFU Hackhaton 2015
Entity Framework: Nakov @ BFU Hackhaton 2015
 
Real World MVC
Real World MVCReal World MVC
Real World MVC
 
Modern Android app library stack
Modern Android app library stackModern Android app library stack
Modern Android app library stack
 
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...
 
Data Abstraction for Large Web Applications
Data Abstraction for Large Web ApplicationsData Abstraction for Large Web Applications
Data Abstraction for Large Web Applications
 
Powerful persistence layer with Google Guice & MyBatis
Powerful persistence layer with Google Guice & MyBatisPowerful persistence layer with Google Guice & MyBatis
Powerful persistence layer with Google Guice & MyBatis
 

Plus de uEngine Solutions

이벤트스토밍과 BDD 를 혼합하여 소프트웨어 디자인과 테스트 자동화하기
이벤트스토밍과 BDD 를 혼합하여 소프트웨어 디자인과 테스트 자동화하기이벤트스토밍과 BDD 를 혼합하여 소프트웨어 디자인과 테스트 자동화하기
이벤트스토밍과 BDD 를 혼합하여 소프트웨어 디자인과 테스트 자동화하기uEngine Solutions
 
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
비대면 MSA / CNA 강의 - Contactless Microservices Architecture LearninguEngine Solutions
 
Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3uEngine Solutions
 
Event storming based msa training commerce example v2
Event storming based msa training commerce example v2Event storming based msa training commerce example v2
Event storming based msa training commerce example v2uEngine Solutions
 
Event storming based msa training commerce example
Event storming based msa training commerce exampleEvent storming based msa training commerce example
Event storming based msa training commerce exampleuEngine Solutions
 
Event Storming and Implementation Workshop
Event Storming and Implementation WorkshopEvent Storming and Implementation Workshop
Event Storming and Implementation WorkshopuEngine Solutions
 
designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...uEngine Solutions
 
Safe cloud native transformation approaches
Safe cloud native transformation approachesSafe cloud native transformation approaches
Safe cloud native transformation approachesuEngine Solutions
 
microservice architecture public education v2
microservice architecture public education v2microservice architecture public education v2
microservice architecture public education v2uEngine Solutions
 
From event storming to spring cloud implementation
From event storming to spring cloud implementationFrom event storming to spring cloud implementation
From event storming to spring cloud implementationuEngine Solutions
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)uEngine Solutions
 
Distributed transanction in microservices
Distributed transanction in microservicesDistributed transanction in microservices
Distributed transanction in microservicesuEngine Solutions
 
From event storming to spring cloud implementation
From event storming to spring cloud implementationFrom event storming to spring cloud implementation
From event storming to spring cloud implementationuEngine Solutions
 
Open Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS SnapshotsOpen Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS SnapshotsuEngine Solutions
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos uEngine Solutions
 
Bluemix paas 기반 saas 개발 사례
Bluemix paas 기반 saas 개발 사례Bluemix paas 기반 saas 개발 사례
Bluemix paas 기반 saas 개발 사례uEngine Solutions
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented ArchitectureuEngine Solutions
 
Building multi tenancy enterprise applications - quick
Building multi tenancy enterprise applications - quickBuilding multi tenancy enterprise applications - quick
Building multi tenancy enterprise applications - quickuEngine Solutions
 

Plus de uEngine Solutions (20)

이벤트스토밍과 BDD 를 혼합하여 소프트웨어 디자인과 테스트 자동화하기
이벤트스토밍과 BDD 를 혼합하여 소프트웨어 디자인과 테스트 자동화하기이벤트스토밍과 BDD 를 혼합하여 소프트웨어 디자인과 테스트 자동화하기
이벤트스토밍과 BDD 를 혼합하여 소프트웨어 디자인과 테스트 자동화하기
 
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
비대면 MSA / CNA 강의 - Contactless Microservices Architecture Learning
 
Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3Event storming based msa training commerce example add_handson_v3
Event storming based msa training commerce example add_handson_v3
 
Event storming based msa training commerce example v2
Event storming based msa training commerce example v2Event storming based msa training commerce example v2
Event storming based msa training commerce example v2
 
Event storming based msa training commerce example
Event storming based msa training commerce exampleEvent storming based msa training commerce example
Event storming based msa training commerce example
 
Event Storming and Implementation Workshop
Event Storming and Implementation WorkshopEvent Storming and Implementation Workshop
Event Storming and Implementation Workshop
 
designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...designing, implementing and delivering microservices with event storming, spr...
designing, implementing and delivering microservices with event storming, spr...
 
Microservice coding guide
Microservice coding guideMicroservice coding guide
Microservice coding guide
 
Safe cloud native transformation approaches
Safe cloud native transformation approachesSafe cloud native transformation approaches
Safe cloud native transformation approaches
 
microservice architecture public education v2
microservice architecture public education v2microservice architecture public education v2
microservice architecture public education v2
 
From event storming to spring cloud implementation
From event storming to spring cloud implementationFrom event storming to spring cloud implementation
From event storming to spring cloud implementation
 
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
유엔진 오픈소스 클라우드 플랫폼 (uEngine Microservice architecture Platform)
 
Distributed transanction in microservices
Distributed transanction in microservicesDistributed transanction in microservices
Distributed transanction in microservices
 
From event storming to spring cloud implementation
From event storming to spring cloud implementationFrom event storming to spring cloud implementation
From event storming to spring cloud implementation
 
Micro service architecture
Micro service architectureMicro service architecture
Micro service architecture
 
Open Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS SnapshotsOpen Cloud Engine PaaS Snapshots
Open Cloud Engine PaaS Snapshots
 
Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos Private PaaS with Docker, spring cloud and mesos
Private PaaS with Docker, spring cloud and mesos
 
Bluemix paas 기반 saas 개발 사례
Bluemix paas 기반 saas 개발 사례Bluemix paas 기반 saas 개발 사례
Bluemix paas 기반 saas 개발 사례
 
Process Oriented Architecture
Process Oriented ArchitectureProcess Oriented Architecture
Process Oriented Architecture
 
Building multi tenancy enterprise applications - quick
Building multi tenancy enterprise applications - quickBuilding multi tenancy enterprise applications - quick
Building multi tenancy enterprise applications - quick
 

Dernier

Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfpanagenda
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...panagenda
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 

Dernier (20)

Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdfSo einfach geht modernes Roaming fuer Notes und Nomad.pdf
So einfach geht modernes Roaming fuer Notes und Nomad.pdf
 
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
Why device, WIFI, and ISP insights are crucial to supporting remote Microsoft...
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 

웹기반 Ajax개발을 위한 프레임워크 - metaworks3 (메타웍스3)

  • 1. 웹기반 AJAX개발을 위한 프레임워크 – 메타웍스3 유엔진 오픈소스 BPM 프로젝트 장진영 jyjang@uengine.org www.metaworks3.org
  • 2. Concurrent Web-based Applications : www.metaworks3.org
  • 3. You are the mother, How about your Object ? Mother cares All the things? Do that by himself ? www.metaworks3.org
  • 4. Introducing Metaworks3 – • Metaworks is ‘metadata-oriented framework’ • Concurrent Web-based (and mobile) Applications are degrading the Object’s own property – Cohesion of metadata. • For example, you need to keep the properties’ type as same value in DHTML scripts, Server Object, Data Object(Hibernate), and the DDL script as well. • Centralizing metadata and behaviors – it’s Object-Oriented Manner itself! • Metaworks automatically synchronizes(or hides the operation) … • Stubs for calling Javascript to the server function (using DWR) • DAO object and relational query (not completely, SQL is still good) • Keeps intuitive and Sophisticated Programming Model… Don’t be a dog! • By managing the metadata www.metaworks3.org
  • 5. 문제: – 흩어진 메타데이터 General Approach: Using Metaworks3: Spring MVC, JSON, jQuery, Hibernate meta data Controlle Domain r Controlle class r (java version) View DAO You have to meta Synchronize the gap meta Metaworks Metaworks View data DAO data Synchronizes the Proxy meta Synchronizes the Proxy data Domain Domain class Domain class (JS (Hibernat Class version) e version) (Java) www.metaworks3.org
  • 6. No more words, Seeing is believing: #Domain Class (Posting.java) #Presentation (Posting.ejs) @Table(name = “fb_posting”) public class Posting extends MetaworksObject<IPosting> <%=fields.document.here() %> implements IPosting{ <% String document; if(mw3.when == mw3.WHEN_EDIT){ @Id %> public String getDocument() { <%=methods.share.here()%> return document; <% } } public void setDocument(String document) { %> this.document = document; } @ServiceMethod public void share() throws Exception{ createDatabaseMe(); } } #Application (application.html) #Result <script> mw3.setContextWhen(mw3.WHEN_EDIT); mw3.locateObject( { document:"", __className: "org.metaworks.example.Posting” }, null, 'newEntry’ ); </script> ... <div id=‘newEntry’></div> www.metaworks3.org
  • 7. FaceBook example Steps: 1. Recognizing what is (was) ‘Object’ in your application 2. Modeling the Objects 3. Face making and Context-awaring for the Objects 4. Creating Application with highly-abstracted programming Model – almost natural language!  Humanity-Recovery ! www.metaworks3.org
  • 8. Step 1. Recognizing what is (was) ‘Object’ in your application www.metaworks3.org
  • 9. 1. Recognizing Objects in facebook Person object Posting object Doc object Group object www.metaworks3.org
  • 10. 1. Recognizing Objects in facebook 1.1. Person objects in different ‘Context’ Where: NORMAL Where: MINIMISED Where: MEDIUM www.metaworks3.org
  • 11. 1. Recognizing Objects in facebook 1.2. Posting objects in different ‘Context’ Where: NORMAL Where: NORMAL Where: MINIMISED When: EDIT When: VIEW When: EDIT www.metaworks3.org
  • 12. Step 2. Modeling the ‘Cohesive’ Objects www.metaworks3.org
  • 13. 2. Modeling Objects - Posting object Design – 2.1. create interface import org.metaworks.dao.IDAO; public interface IPosting extends IDAO{ public Person getWriter(); // 작성자 public void setWriter(Person writer); public String getDocument(); // 글 public void setDocument(String document); public boolean isLikeIt(); // 좋아요 여부 public void setLikeIt(boolean likeIt); } www.metaworks3.org
  • 14. 2. Modeling Objects - Posting object Design – 2.2. add metadata import org.metaworks.dao.IDAO; @Table(name="Posting") public interface IPosting extends IDAO{ public Person getWriter(); public void setWriter(Person writer); @Id public String getDocument(); public void setDocument(String document); public boolean isLikeIt(); public void setLikeIt(boolean likeIt); @ServiceMethod public void post() throws Exception; @ServiceMethod public void like() throws Exception; } www.metaworks3.org
  • 15. 2. Modeling Objects – Posting object 2.3. create implementation object public class Posting extends Database<IPosting> implements IPosting{ Person writer; public Person getWriter() { return writer; } public void setWriter(Person writer) { this.writer = writer; } String document; public String getDocument() { return document; } public void setDocument(String document) { this.document = document; } boolean likeIt; public boolean isLikeIt() { return likeIt; } public void setLikeIt(boolean likeIt) { this.likeIt = likeIt; } } www.metaworks3.org
  • 16. 2. Modeling Objects - Posting object 2.4. add behaviors public class Posting extends Database<IPosting> implements IPosting{ Person writer; public Person getWriter() { return writer; } public void setWriter(Person writer) { this.writer = writer; } String document; public String getDocument() { return document; } public void setDocument(String document) { this.document = document; } boolean likeIt; public boolean isLikeIt() { return likeIt; } public void setLikeIt(boolean likeIt) { this.likeIt = likeIt; } public void post() throws Exception{ createDatabaseMe(); } public void like() throws Exception{ databaseMe().setLikeIt(true); //will automatically synchronize the value } } www.metaworks3.org
  • 17. Step 3 Face making and Context-awaring for the Objects www.metaworks3.org
  • 18. 3. Face Making 3.1. creating ‘Face’ – Posting.ejs <table> <tr> <td><%=fields.writer.here() %></td> <td><%=fields.document.here() %> <% if(value.likeIt){ %> You like this <% }else{%> <a onclick=<%=methods.like.caller()%>>좋아요</a> <%}%> </td> </tr> </table> www.metaworks3.org
  • 19. 3. Face Making 3.1. considering the Contexts – WHEN_EDIT <% if(mw3.when == mw3.WHEN_EDIT){ value.document = 'Share your status...'; } %> <table> <tr> <td><%=fields.writer.here()%></td> <td><%=fields.document.here()%> <% if(mw3.when == mw3.WHEN_EDIT){ %> <%=methods.post.here()%> <% } if(value.likeIt){ %> You like this <% }else{%> <%=methods.like.here()%> <%}%> <% if(mw3.when == mw3.WHEN_EDIT){ %> <input type=button value="save"> <% }else{ %> <input type=button onclick="<%=editFunction%>" value="edit"a> <% } %> </td> </tr> </table> www.metaworks3.org
  • 20. Next, Do 1~3 for Person object – Person.java & Person.ejs #Person.java #Person.ejs public interface Person extends IDAO{ <%if (!value){%> @org.metaworks.Metadata(isKey = true) Writer is not specified public String getName(); <%}else{%> public void setName(String name); <img src="<%=value.portraitURL%>" width=50><br> public int getAge(); <b><%=value.name%></b> public void setAge(int age); <%}%> @org.metaworks.Metadata(face="faces/image.ejs”) public String getPortraitURL(); public void setPortraitURL(String portraitURL); public boolean isMyFried(); public void setMyFried(boolean isMyFried); } www.metaworks3.org
  • 21. Step 4 Creating Application with highly-abstracted programming Model – Write a Novel or Poet, not the alien language www.metaworks3.org
  • 22. 4. Now, create the Application <script type="text/javascript"> lastEntryId = new MetaworksObject( { document:"", writer: loginUser, __className: "org.metaworks.example.Posting" }, 'newEntry' ); </script> <div id=”newEntry"></div> www.metaworks3.org
  • 23. Result www.metaworks3.org
  • 26. Applications ProcessCodi Enterprise 2.0 Platform www.metaworks3.org
  • 27. Conclusion • No duplicated metadata mapping e.g. JSON object mapping in Spring Controller and DAO mapping for Hibernate.  No errors from duplicated metadata source. • Cohesive User Interface management by EJS- object mapping. • Intuitive Programming Model – model and metadata-driven, not implementation-driven. Only thing you have to do is… just forgetting the old manners! www.metaworks3.org
  • 28. All the Source Code available here: www.metaworks3.org it’s very early stage now! You are welcomed to participate this Open Source Project. www.metaworks3.org