2010-12-11 4 views
0

고객은 mdb 데이터베이스 (Microsoft 액세스)를 기반으로하는 클라이언트/서버 응용 프로그램을 보유하고 있으며 자신의 웹 사이트 (java에 배포 됨)를 통해 데이터의 일부를 공개하려고합니다. 그것을 달성하는 가장 좋은 방법은 무엇입니까? 시작할 장소가 필요합니다 (예 : 웹 서비스, 스프링 통합, 노새, 서비스 믹스).MDB에서 WebApp로 Java 통합

답변

2

웹 서버가 현재 사무실 LAN에 있고 액세스 프론트 엔드 응용 프로그램이 백엔드 mdb 파일이있는 폴더를 사용하거나 볼 수 있다면 (이론적으로 Windows 네트워킹을 말함), 웹 서버로드 및 사용률이 너무 높지 않으면이 데이터 중 일부를 웹 서버에 노출하십시오.

서버가 동일한 Office 네트워크 상에 있지 않을 경우 합리적인 해결책으로는 백엔드 데이터를 단순히 액세스 밖으로 이동하고 SQL 서버와 같은 일부 데이터베이스 서버로 이동하는 것입니다 , 또는 mySQL. 이렇게하면 액세스 응용 프로그램 (프론트 엔드 파트)이 계속 실행되어 이전과 동일하게 작동합니다. 이제는 웹 사이트에서도 해당 데이터를 공유 할 수 있습니다. 이러한 소위 말하는 액세스 데이터의 업 사이징 프로세스는 어렵지 않지만 SQL 서버와 액세스를 모두 알고 있고 여러 번 업 사이즈를 완료 한 유능한 액세스 개발자가 필요합니다.개발자가 여러 번 해본 경우 대부분의 경우 데이터를 서버로 이동하고 기존 코드 투자를 유지하는 데 많은 노력을 기울이지 않습니다.

따라서 액세스 코드와 데이터베이스를 그대로 유지하면서 데이터를 서버 기반 시스템에 액세스하지 못하게 이동하십시오. 언급 된 것처럼 다른 방법은 웹 서버가 액세스 데이터가있는 동일한 네트워크에 연결되어있는 경우 이론적으로 액세스 백엔드 데이터를 웹 서버와 동일한 서버에 배치하는 것입니다. 이 설정을 사용하면 Office 네트워크의 로컬 사용자와 웹 서버가 액세스 백엔드 파일의 데이터를 공유하고 사용할 수 있습니다.

또 다른 대안은 물론 SQL 서버의 MySQL과 같은 웹 시스템에서 활용하는 데이터베이스 서버에 대한 액세스 권한을 갖는 것입니다. 액세스가 데이터베이스 서버에 이러한 방식으로 연결될 수 있기 때문에 웹 사이트에서 액세스 응용 프로그램으로 수집 된 데이터를 미리 정해진 시간에 또는 사용 중에도 다시 셔플 할 수 있습니다. 따라서 Access는있는 그대로 유지하지만 필요한 데이터를 수집하는 웹 파트에 연결하십시오.

위의 대안 중 위의 선택 사항 중 어느 것이 합당한 지 여부는 귀하의 특정 상황에 따라 다릅니다.

실제로이 렌치에 렌치를 던지면 2010 년에 액세스 할 수있어 데이터가 Azure SQL 또는 SharePoint를 기반으로하는 경우 100 % 웹 기반으로 확장 가능한 클라우드 컴퓨팅 시스템을 구축 할 수 있습니다. 실제로 sharepoint에 대한 액세스 데이터베이스를 게시 할 때 결과는 .net XAML (zammel) 양식과 사용자 측면에서 확장 가능한 시스템입니다.

http://www.youtube.com/watch?v=AU4mH0jPntI

, 당신은 셰어 포인트를 사용할 것입니다 위의 액세스 웹 개발 작업을 수행하려면 다음 비디오에서 당신은 내가 브라우저에서 완전히 액세스 응용 프로그램을 실행으로 전환 중간 지점이 말할 수 있습니다. 그러나 조직에 SharePoint가있는 경우 이는 합리적인 가능성이 될 수 있습니다.

+0

당신 모두가 합리적인 해결책 인 것 같지만, 불행히도 내가 찾고있는 것이 아닙니다. 나는 ws 나 jms 같은 것을 생각했다. 우리는 고객 사무실과 엔터프라이즈 웹 사이트라는 두 가지 다른 위치에 대해 이야기하고 있습니다. 클라이언트 응용 프로그램이 너무 느리게되어 데이터를 웹으로 이동할 수 있습니다. –

+0

알버트가 귀하의 질문에 대한 가장 쉬운 답변을 제공합니다. 그것을 거부하는 것은 합리적으로 근거가 없습니다. –

0

JDBC-ODBC Bridge를 통해 Java를 사용하여 ACCESS 데이터베이스에 연결할 수 있습니다.

    서버에서
  1. (하나는 자바 웹 응용 프로그램을 호스팅) 액세스 파일에 ODBC 항목을 가리키는를 만들 :이 작업을 수행하는

    단계는 것입니다. 이름은 mdbodbcaccess입니다.

  2. 그런 다음 JDBC를 사용하여 Java에서 해당 ODBC 항목에 연결하십시오. 이 같은

뭔가 :

// 
// points to the entry you've just created 
// 
Connection conn = DriverManager.getConnection("jdbc:odbc:mdbodbcaccess"); 
Statement st = conn.createStatement(); 
ResultSet rs = st.executeQuery("select f1, f2 from table"); 
while (rs.next()) { 
    // iterate your resultset and do something with it 
    System.out.println(rs.getString("f1")); 
} 
rs.close(); 
st.close(); 
conn.close(); 

또는, 당신은 당신의 응용 프로그램 서버에서 풀링 된 연결을 사용할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다.하지만 이미 jdbc 드라이버를 사용하여 db에 연결하는 방법을 알고 있습니다. –

+0

@Maurizion jdbc : odbc 브리지로 연결하는 방법을 알고 있습니까? –

+0

예, 있습니다. 이것은 jdbc 질문이 아닙니다. 통합 문제입니다. –

0

나는 당신이 조금 실망했다고 생각합니다. MDB는 Message Driven Bean입니다. 그것은 데이터베이스가 아닙니다. JMS 대상을 청취하고 JMS 메시지로 구동되는 일부 작업을 수행하는 방법입니다. 데이터는 이미 DB의 어딘가에 저장되어야합니다. MDB를 사용하는 경우 Java EE 응용 프로그램입니다.

이제 사이트에 대해. 사이트에 어떤 기술이 사용됩니까? 자바 기반 기술이라면 사이트가 Java EE 응용 프로그램이기 때문에 인생이 편합니다. 이 경우에는 실제로 2 개의 Java EE 응용 프로그램이 있습니다. 이 모든 것이 정확하면

  1. 을 병합하십시오. 이 경우 웹 사이트의 백엔드에서 "mdb 기반 응용 프로그램"을 호출 할 수 있습니다.
  2. 다른 방법으로 하나의 응용 프로그램을 호출 할 수 있습니다. 원격 EJB 호출을 수행하거나 일부 API를 웹 서비스로 노출하고 호출하십시오. 또는 사이트의 "mdb application"큐에 연결하여 메시지를 보낼 수도 있습니다.

사이트가 Java로 작성되지 않은 경우 웹 서비스를 사용하거나 대기열에 연결하십시오.

일반적으로 많은 가능성이 있습니다. 그러나 추가 세부 사항없이 특정 내용을 권장하는 것은 어렵습니다. 나는이 대답이 당신을 조금 도왔 으면 좋겠다. 도움이 더 필요한 경우 세부 정보를 제공하십시오.

+0

OP는 MDB를 Microsoft DB (일명 액세스 확장)라고합니다. –

+0

정확하게, 나는 Microsoft 확장 –

+0

을 의미했습니다.이 대답은 삭제해야합니다. 이는 질문에 대한 완전히 잘못된 해석이므로 삭제해야합니다. –