사이트에서 쿠키를 사용합니다: 그 웹 사이트를 방문할 때 쿠키 사용에 동의하게됩니다.
자세한 내용은 개인 보정보호 정책쿠키 정책을 살펴보시기 바랍니다.

레거시 응용프로그램 및 데이터베이스의 지능형, 사용자 정의 및 상당히 자동화된 플랫폼 간 마이그레이션


Progress 4GL에서 Java로 마이그레이션

Ispirer MnMTK 애플리케이션의 마이그레이션 및 현대화는 툴킷은 Progress 4GL에서 Java로 자동 변환을 제공합니다.


Progress 4GL에서 Java로 마이그레이션하기 개요


이제부터 수동 변환 더 이상 필요가 없습니다. Ispirer MnMTK는 Progress 4GL에서 Java로 필요 변환을 수행하겠습니다. Inspirer Systems의 헌신적인 프로프 팀은 저희 툴은 고객님의 가장 복잡한 레거시 근대화 요구 사항에 충족하게 가능하게 합니다.


이 대모 영상은Ispirer MnMTK 2015가Progress 4GL에서 Java로 변환 방볍을 보여줍나다.




왜Ispirer MnMTK인가?

Ispirer MnMTK의 주요 이점

Ispirer MnMTK는 Java로 마이그레이션 과정을 제공으로 가능하게 합니다. 또한, Ispirer MnMTK를 선택하실 때 분명히 위험 및 노력을 줄입니다. 이러한 장점은 합리적이고 경쟁력있는 비용으로 받을 수 있습니다.

저희 변환 택놀로지는 다음으로 보장합니다.

  • 유지하고 읽을 수 있는 코드
    수동 변환 품질로유지하고 읽을 수 있는 코드는 생성합니다.
  • 코드 변환 및 리팩토링
  • 최신 택놀로지
  • 순수 자바 코드
    변환 후 어떤 IP사용과 Ispirer 라이브러리가 없습니다.

Ispirer MnMTK는수천 또는 수백만 라인의 코드를 포함하는 큰 스크립트를 변환하는 것이 효과적입니다.

  • 자동으로 의존성을 해결
    종속 파일 및 데이터베이스에서 자동으로 해결된 의존성과 갈등으로 정보를 얻을 수 있습니다.
  • 구성
    다양한 구성 및 프로젝트 파일(SQLWays 구성 파일, .XML 파일)에서 정보를 읽을 수 있습니다.
  • 빠른 맞춤화
    추상 레이어, 재사용 가능한 변환 템플릿, 내부 변환 언어와 도구는 빠른 사용자 정의 및 복잡한 코드 변환을 할 수있습니다.


평가 과정

고객님께서 Ispirer Systems와 프로젝트에 대해 공동 논의를 위해 주저 없이 설문지를 작성하시고 보내주십시오.

ISV 회사의 경우 Ispirer는 수백만 줄의 코드로 응용 프로그램을 변환하는 Engagement model를 제공한다.

라이브 프리젠테이션

Ispirer 마이그레이션 솔루션

Progress 4GL to Java

요청하기

견적 요청

Ispirer 마이그레이션 솔루션

Progress 4GL to Java

서비스 툴킷

변환의 특징

Migrate Progress databases to Oracle/PostgreSQL/MySQL databases

  • Progress tables/view/sequences 를 Oracle/PostgreSQL/MySQL tables/views/sequences로 변환

예를 들어,

Progress 4GL

ADD TABLE "TB_DATATYPES"
  AREA "Schema Area"
  DUMP-NAME "tb_datat"

ADD FIELD "c1" OF "TB_DATATYPES" AS character 
  FORMAT "X(8)"
  INITIAL ""
  POSITION 2
  SQL-WIDTH 16
  ORDER 10

ADD FIELD "c4" OF "TB_DATATYPES" AS integer 
  FORMAT "->,>>>,>>9"
  INITIAL "0"
  POSITION 5
  SQL-WIDTH 4
  ORDER 20

ADD FIELD "c5" OF "TB_DATATYPES" AS logical 
  FORMAT "yes/no"
  INITIAL "no"
  POSITION 6
  SQL-WIDTH 1
  ORDER 30


PSC
cpstream=ISO8859-1


 

Oracle:

CREATE TABLE TB_DATATYPES
(
   c1 CHAR(16),
   c4 NUMBER(10,0),
   c5 NUMBER(1,0)   
);
  • Converts Progress 4GL triggers를 Oracle/PostgreSQL/MySQL triggers/procedures or Java classes로 변환합니다.

Progress 4GL

TRIGGER PROCEDURE FOR DELETE OF gsinvhd.
FIND distribution 
WHERE distribution.company = gsinvhd.company NO-LOCK NO-ERROR.

Oracle

  
CREATE OR REPLACE TRIGGER SWT_Delete_gsinvhd
AFTER DELETE
ON gsinvhd
   DECLARE
   v_distribution_company  VARCHAR2(255);
BEGIN
   SELECT   company INTO v_distribution_company FROM distribution
   WHERE (distribution.company = gsinvhd.company) AND ROWNUM <=1;
   EXCEPTION
   WHEN NO_DATA_FOUND THEN
      NULL;
END;

더 자세한 정보를 얻고 싶으면 아래에 페이지로 참조하시기 바랍니다.

Progress to Oracle Database Migration

Progress to PostgreSQL Database Migration

Progress to MySQL Database Migration


Progress 4GL code에서 Java code로 변환합니다.


Convert Progress 4GL code to Java code

  • Progress 4GL Procedure Files (*.p)을 Javaackages with classes로 변환

Progress 4GL

DEF VAR w_ail AS CHAR NO-UNDO.
PROCEDURE act_InitValues.
  IF w_ ail EQ "ac21" OR w_ ail EQ "first" 
  THEN DO:
    ASSIGN w_ ail  ="first".
  END. 
  ELSE IF w_ ail EQ "ac50"
  THEN DO:
    ASSIGN w_ ail ="second".
  END.
  ELSE DO:
  ASSIGN w_ ail ="third"
  END.
END PROCEDURE.  
 

Java:

package ispirer;
public class If_statement
{
   private  String w_ ail = null;
   public void act_InitValues()
   {
      if((w_ ail.equals("ac21")) ||( w_ ail.equals("first")))
      {
         w_ ail = "first";
      }
      else if(w_ ail.equals("ac50"))
      {
         w_ ail = "second";
      }
      else
      {
         w_ ail = "third";
      }
   }
}
  • Progress 4GL Include Files (*.i)을 Java packages with classes로 변환

Progress 4GL

FUNCTION days-in-month RETURNS INTEGER
  ( INPUT pmonth AS INTEGER, INPUT pyear AS INTEGER ) :

  DEFINE VARIABLE idays AS INTEGER 
  EXTENT 12 INITIAL [31,28,31,30,31,30,31,31,30,31,30,31].

  IF pmonth NE 2 THEN DO:
    RETURN idays[pmonth].
  END.
  ELSE DO:
    IF INTEGER(pyear / 4) * 4 = pyear THEN DO:
      IF INTEGER(pyear / 100) * 100 = pyear THEN DO:
        IF INTEGER(pyear / 400) * 400 = pyear 
        THEN RETURN 29.
        ELSE RETURN 28.
      END.
      ELSE RETURN 29.
    END.
    ELSE RETURN 28.
  END.      
END FUNCTION.

Java:

package ispirer;
public class Daymonth
{
  public final int Days_in_month(int pmonth, int pyear)
  {
    int[] idays = new int[] {31,28,31,30,31,30,31,31,30,31,30,31};
    if (pmonth != 2)
    {
      return idays[pmonth - 1];
    }
    else
    {
      if ((int)(pyear / 4) * 4 == pyear)
      {
        if ((int)(pyear / 100) * 100 == pyear)
        {
          if ((int)(pyear / 400) * 400 == pyear)
          {
            return 29;
          }
          else
          {
            return 28;
          }
        }
        else
        {
          return 29;
        }
      }
      else
      {
        return 28;
      }
    }
  }
}
  • Progress 4GL Window Procedure (*.w) Files에서 Java UI Frameworks (Swing, SWT, Java FX, etc.)파일로 변환합니다.
  • Progress ABL reports에서 Java Jasper 리포트나 Crystal 리포트로 변롼랍니다.
  • Data Access에서 Java Database Access Frameworks (JDBC, Hibernate, Torque, etc.)로 변환합니다.

Ispirer MnMTK는 데이터베이스 테이블에 따라 Hibernate, Torque XML 지도를 자동으로 만듭니다.

예를 들어, Progress 4GL

DEF BUFFER buf_LogOverview   FOR test_table.
procedure test_proc.
FIND FIRST buf_LogOverview      NO-LOCK
                WHERE buf_LogOverview.col1    EQ "1"
                  AND buf_LogOverview.col2 EQ 2
              NO-ERROR.        
end procedure.

create table test_table
(
  col1 VARCHAR,
  col2 INTEGER PRIMARY KEY

);

Java

package buffer_migration;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import util.HibernateUtil;
public class Find_stmt
{
  private Test_table buf_LogOverview;
  public void test_proc()
  {
    Session session = HibernateUtil.getSessionFactory().openSession();
    session.beginTransaction();
    buf_LogOverview =((List< Test_table >)
    session.createQuery("from Test_table WHERE col1    = '1' "+
                " AND col2 = 2").list()).get(0);
    session.getTransaction().commit();
  }
}
  
import java.util.Set;
import java.util.HashSet;

public class Test_table
{
  private String col1;
  private Integer col2;
  private Set test_tables = new HashSet();
  
  public Test_table()
  {
  }
  
  public void setCol1(String col1)
  {
  this.col1=col1;
  }
  
  public String getCol1()
  {
  return col1;
  }

  public void setCol2(Integer col2)
  {
  this.col2=col2;
  }
  
  public Integer getCol2()
  {
  return col2;
  }
}




  
    
    
  


추가로 칠문이 있으시면 언제든지 연락주시기 바랍니다.

 
Testimonials
Extedo, 독일
DB2를 MSSQL Server로


EXTEDO 사는 1996년에 간단한 비전을 가져 IABG 사의 부서로 설립되었습니다. 즉 생명과학 기관에게 산업별 표준비율과 규제 요구사항에 수월히 도와줍니다.

...

WeCare Technologies, 팔레스타인
Oracle를 SAP HANA로

Ispirer 도구 보다 SQL 마이그레이션을 위한 더 나은 도구가 있는지 의심스럽습니다. 이 도구는 문제없이 작업합니다. 그리고 지원이 훌륭합니다!

...

Case Studies
Informix 4GL에서 .NET로, 영국

이 프로젝트는 유럽의 주요 상업용 텔레비전 네트워크 중 하나에서 실행되었습니다.

...

Microsoft SQL Server에서 Oracle로 마이그레이션,벨기에

우리의 고객은 30 개국 이상에서 1 만개 이상의 상점을 운영하는 세계 유수의 소매 업체 중 하나였습니다. 이 회사는 공정한 가격으로 다양한 제품과 서비스를 제공함으로써 약 1 천만 고객에게 서비스를 제공합니다. 유럽, 중남미 및 아시아의 3 개 주요 시장에서 운영됩니다.Ispirer의 참여는 벨기에의 고객 부서와 관련이 있습니다.

...