다중 채널 액세스 웹 사이트 아키텍처를 구현하는 xml 방법

PHPz
풀어 주다: 2017-04-02 11:28:19
원래의
1835명이 탐색했습니다.

1. 배경
오늘날의 웹사이트에는 WAP, SMS, EMAIL, 기존 웹, 소켓 등 접속 채널이 점점 더 많아지고 기술도 점점 발전하고 있습니다. 데이터베이스 LDAP에도 연결된 경우 새 채널을 추가할 때 더 이상 코드 수정이나 코드 변경이 필요하지 않도록 설계에서 확장해야 하는 공간이 매우 좋아야 합니다. 하지만 가능합니까? 생각만 해도 불가능하지만, 이 다채널 접속 프레임워크의 완벽함을 더 잘 해결할 수 있는 방법은 없을까요?

2. 아키텍처

기존 연결을 모두 사용하면 디자이너는 사람들을 끌기 위해 어떤 방식으로든 작성할 수 있습니다. 확실히 달성할 수 있지만 유지하는 것이 더 고통스러울 것입니다. 질문으로 돌아가서 어떻게 하면 더 완벽해질 수 있습니까? 프로젝트팀의 건축 논의 중에 ​​라우팅이라는 아이디어가 떠올랐습니다.

이 모든 채널을 연결하는 핵심은 이 문어XML라우터의 머리입니다. 여기서 라우터의 역할은 모든 채널과 통신하고 데이터 라우팅을 구현하며 확장을 위해 노력하는 것입니다. 시스템 아키텍처의 성과 유연성으로 인해 많은 이점이 있을 것입니다. 유연하고 표준화된 언어인 XML을 데이터 전송 매체로 사용하지 않으면 라우터의 작업 부하도 기하급수적으로 증가하기 때문에 XMLRouter라고 합니다.

3. 아이디어와 패턴
XMLRouter의 원래 아이디어는 컴퓨터 마더보드의 빌더 패턴과 컴퓨터 마더보드의 PCI 슬롯 정의인 <<디자인 패턴>>에서 비롯되었습니다. 귀하가 생산하는 카드는 PCI 표준을 준수하므로 마더보드에 연결하면 작동합니다. 내부 작동 방식은 이미 캡슐화되어 있습니다. 빌더 패턴은 단계별로 구현됩니다. XMLRouter는 이러한 복잡한 채널을 분리하여 하나씩 수행합니다.
서비스 아이디어: 라우터와 통신하려면 이러한 채널에 액세스할 때 통합 인터페이스를 정의해야 합니다. 여기서는 프로그램이 서비스를 준수하는 한 서비스가 됩니다.
Factory 모드와 Composite 모드
실제 설계에서는 Factory 모드를 이용하여 XMLRouter를 생성하고, RouterFactory를 통해 생성하여 사용하게 됩니다. Queue에 배치되며 해당 Router가 Queue에서 호출되어 데이터 전송, 데이터 수신 및 반환을 수행하고 Composite 모드를 적용합니다.
4. XML 구성 파일
Router용 XML 파일 사용 첫 번째 부분은

<?xml version="1.0" ?>
<services>
   <!-- database Service -->
   <service name="database" type="database" class="com.web.service.DBService">
   <connector
       driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"
       url="jdbc:microsoft:sqlserver://192.168.0.179:1433" user="test"
       passwd="test" />
   </service>
   <!-- Web Service-->
   <service name="web" type="web" class="com.web.service.WebService" >
     <connector />
   </service>
……
</services>
로그인 후 복사

와 같은 라우터 구성입니다. 서비스 노드는 액세스해야 하는 채널을 나타냅니다. 노드에는 커넥터 하위 노드가 포함됩니다. 노드의 구성은 데이터베이스인 경우 url, user, passwd, 드라이버 및 기타 속성을 포함합니다. , maxthread 및 기타 속성. 속성 값은 자신의 정의에 따라 구성할 수 있습니다.
또 다른 유형의 XML 파일은 각 서비스에 포함된 데이터를 전송하는 데 사용됩니다. 해당 XML 파일 예를 들어 webtrans.xml의 형식은 다음과 같습니다.

<?xml version="1.0" ?>
<transaction>
   <trans name="addDoc" service="database" method="insert">
     <property name="createtime" type="timestamp"/>
     <property name="creatorid" type="long"/>
     <property name="doctypeid" type="int"/>
     <property name="docstatusid" type="int"/>      
   </trans>    
</transaction>
  相应的dbtrans.xml格式如下
  <trans name="addDoc" table="TDOC_DOCS" method="insert">
     <primarykey name="docid" />    
     <set>
       <property name="createtime" type="timestamp"/>
       <property name="creatorid" type="long"/>
       <property name="doctypeid" type="int"/>
       <property name="docstatusid" type="int"/>      
     </set>
   </trans>
로그인 후 복사

위 내용은 다중 채널 액세스 웹 사이트 아키텍처를 구현하는 xml 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿