웹 서비스는 응용 프로그램을 웹 응용 프로그램으로 변환 할 수 있습니다.
웹 서비스를 사용하면 응용 프로그램이 전 세계에 정보를 게시하거나 기능을 제공 할 수 있습니다.
웹 서비스는 다른 응용 프로그램에서 사용할 수 있습니다.
웹 서비스를 통해 회계 부서의 Win 2K 서버는 IT 공급 업체의 UNIX 서버에 연결할 수 있습니다.
기본 웹 서비스 플랫폼은 XML+HTTP입니다.
웹 서비스는 XML을 사용하여 데이터를 코딩하고 SOAP를 사용하여 데이터를 전송합니다.
WebService 란 무엇입니까?
이름에서 알 수 있듯이 WebService는 웹 기반 서비스입니다. 웹 (HTTP) 메소드를 사용하여 외부 시스템의 일부 요청을 수신하고 응답합니다. 이를 통해 원격 통화가 가능합니다.
1 : WebService의 작업 모드의 관점에서 볼 때 일반적인 웹 프로그램 (예 : ASP, JSP 등)과 본질적으로 다르지는 않습니다. HTTP 전송 프로토콜을 기반으로하는 프로그램입니다.
2 : WebService에서 사용하는 데이터는 XML 형식을 기반으로합니다. 현재 표준 웹 서비스는 주로 데이터 형식의 SOAP 프로토콜을 사용합니다. SOAP 프로토콜은 실제로 XML 인코딩 사양을 기반으로 한 텍스트 프로토콜입니다.
웹 서비스에 대한 기술 지원
웹 서비스 플랫폼에는 분산 애플리케이션의 생성을 가능하게하기 위해 일련의 프로토콜이 필요합니다. 모든 플랫폼에는 데이터 표현 방법 및 유형 시스템이 있습니다. 상호 운용성을 달성하기 위해 웹 서비스 플랫폼은 다양한 플랫폼, 프로그래밍 언어 및 구성 요소 모델에서 다양한 유형의 시스템을 통신하기위한 표준 유형 시스템을 제공해야합니다. 현재 이러한 계약에는 다음이 포함됩니다.
XML 및 XSD
Extensible Markup Language XML은 웹 서비스 플랫폼에서 데이터를 표현하기위한 기본 형식입니다. 구축 및 분석이 쉬운 것 외에도 XML의 주요 장점은 플랫폼 및 공급 업체와 관련이 없다는 것입니다. XML은 월드 와이드 웹 협회 (W3C)에 의해 만들어졌습니다. W3C에서 개발 한 XML SchemaxSD는 표준 데이터 유형 세트를 정의 하고이 데이터 유형 세트를 확장 할 수있는 언어를 제공합니다.
웹 서비스 플랫폼은 XSD를 데이터 유형 시스템으로 사용합니다. VB와 같은 언어로 웹 서비스를 구성 할 때. NET 또는 C#, 웹 서비스 표준을 준수하려면 사용하는 모든 데이터 유형은 XSD 유형으로 변환되어야합니다. 다른 플랫폼과 다른 소프트웨어 사이에 전달되기를 원한다면 무언가로 포장해야합니다. 이런 종류의 것은 비누와 같은 프로토콜입니다.
비누
SOAP는 간단한 객체 액세스 프로토칼로 XML 인코딩 정보를 교환하기위한 가벼운 프로토콜입니다. XML-ENVELOPE는 정보 내용을 설명하기위한 프레임 워크를 정의하고 컨텐츠를 처리하는 방법을 정의하고 프로그램 객체를 XML 객체로 인코딩하며 원격 프로 시저 통화 (RPC)의 규칙을 실행합니다. 비누는 다른 전송 프로토콜에서 실행할 수 있습니다. 예를 들어, 인터넷 이메일 프로토콜 인 SMTP를 사용하여 비누 메시지를 전달할 수 있습니다. 헤더는 전송 레이어마다 다르지만 XML 페이로드는 동일하게 유지됩니다.
Web Service는 "소프트웨어 소프트웨어 대화 상자"방식으로 서로 다른 시스템이 서로 호출 할 수있는 능력을 달성하고 소프트웨어 응용 프로그램, 웹 사이트 및 다양한 장치간에 호환되지 않는 상태를 깨고 "웹을 기반으로 한 계절 통합"이라는 목표를 달성하기를 희망합니다.
WSDL
웹 서비스 설명 언어 WSDL은 공식적인 설명 문서로서 읽을 수있는 방식으로 제공되며 XML을 기반으로합니다. 웹 서비스 및 그 기능, 매개 변수 및 반환 값을 설명하는 데 사용됩니다. XML을 기반으로하기 때문에 WSDL은 기계 읽을 수 있고 인간이 읽을 수 있습니다.
UDDI
UDDI의 목적은 전자 상거래의 표준을 확립하는 것입니다. UDDI는 웹 서비스에 제공되는 웹 기반의 분산 정보 등록 센터 구현 표준 및 사양 세트이며, 기업이 자체 웹 서비스를 등록하여 다른 기업이 액세스 프로토콜을 발견 할 수 있도록하는 일련의 구현 표준도 포함되어 있습니다. RPC 및 메시지 호출
웹 서비스 자체는 실제로 응용 프로그램 간의 통신을 구현하고 있습니다. 이제 응용 프로그램을위한 두 가지 커뮤니케이션 방법이 있습니다 : RPC 원격 절차 호출 및 메시지 전달. RPC를 사용하는 경우 클라이언트의 개념은 서버에서 원격 절차를 호출하는 것입니다. 일반적인 방법은 원격 객체를 인스턴스화하고 그 방법과 속성을 호출하는 것입니다. RPC 시스템은 일종의 위치 투명성을 달성하려고 시도합니다. 서버는 원격 객체의 인터페이스를 노출시키고 클라이언트는 로컬로 사용되는 이러한 객체의 인터페이스와 같으므로 기본 정보를 숨기고 클라이언트는 객체가 켜져 있는지 알 필요가 없습니다.
웹 서비스를 게시하는 방법?
1. jdk1.6.0_21 나중에 웹 서비스 서비스를 게시하십시오. 주소 표시 줄을 통해 WSDL 문서를보십시오.
2. WSimport를 통해 클라이언트 코드를 생성하고 실행 결과를 호출하고 봅니다. (전화하는 방법을 배우는 것은 우리의 초점입니다).
JDK 버전 후 JDK1.6._07이 릴리스되면 코드에 완전히 주석이 달라야합니다. JDK1.6.0_21을 사용하는 경우 이미 WS2.1이 포함되어 있으므로 클래스에 @webservice 주석 만 추가 할 수 있습니다.
다음은 다음과 같은 두 가지 코드입니다.
JDK1.6.0_13 버전에서 출시 된 WS :
패키지 com.itcast; import javax.jws.webMethod; import javax.jws.webservice; import javax.jws.soap.soapbinding; import javax.jws.soap.soapbinding.style; import javax.xml.ws.endpoint; @webservice (targetnamespace = "http : // loomhost : 9999/helloworld") @soapbinding (style = style.rpc) // rpc 메시지 스타일 만 지원 공개 클래스 helloworld {// 다음은 @webmethod에 의해 주석이 달린다. } public static void main (string [] args) {endpoint.publish ( "http : // localhost : 9999/helloworld", New Helloworld ()); }} 2 : 다음은 JDK1.6.0_24에서 릴리스 된 웹 서비스 코드입니다.
패키지 com.itcast; import javax.jws.webservice; import javax.xml.ws.endpoint; @webservice //이 주석만이 있으며이 주석도 필요합니다. 기본 비누 메시지 스타일은 다음과 같습니다. 문서 공개 클래스 helloWorld {public String sayhello () {return "helloworld"; } public static void main (string [] args) {endpoint.publish ( "http : // localhost : 9999/helloworld", New Helloworld ()); }} 첫 번째 웹 서비스 서비스
패키지 com.itcast; import javax.jws.webservice; import javax.xml.ws.endpoint; / *** 첫 번째 웹 서비스 서비스 애플리케이션* // 주석에 의해,이 클래스는 webService @webservice public class helloWorld {public String sayhello () {return "Hello World"; } // 기본 메소드에서 javax.xml.ws.endpoint endpoint를 사용하여 응용 프로그램 공개 정적 무효 메인 (String [] args) {endpoint.publish ( "http://127.0.0.1:9999/helloworld", New Helloworld ()); }}코드 설명 : Helloworld 클래스의 모든 비 정적 노출 방법이 외부에 노출됩니다.
WSimport 도구 설명 :
wsimport는 JDK와 함께 제공되는 도구이며 WSDL 문서를 기반으로 클라이언트 측 통화 코드를 생성 할 수 있습니다. 물론 서버 측 웹 서비스에 어떤 언어가 작성하든 클라이언트에서 Java 코드가 생성됩니다. 서버 측에 기록 된 내용은 중요하지 않습니다.
wsimport.exe는 java_home/bin 디렉토리에 있습니다.
일반적인 매개 변수는 다음과 같습니다.
• -d <directory> - .class 파일이 생성됩니다. 기본 매개 변수.
• -s <directory> - .java 파일이 생성됩니다.
• -p <새 패키지 이름 생성> -지정된 패키지에서 생성 된 클래스를 prug합니다.
(wsdlurl) -http : // server : port/service? wsdl, 필수 매개 변수
사용:
1 : Java 버전을 통해 현재 버전 번호를 확인할 수 있습니다. 버전이 너무 낮 으면 더 높은 버전의 JDK를 설치할 수 있습니다.
또는 설치된 JDK 디렉토리를 d : /jdk1.6.0_24 디렉토리와 같은 컴퓨터에 직접 복사하십시오.
이전 환경 변수는 이전 버전의 JDK 디렉토리, 즉 두 가지 환경 변수 java_home 및 경로로 설정되었으므로.
환경 변수를 Java_home = d : /jdk1.6.0_24, path =%java_home%/bin,
환경 변수를 재설정 한 후 DOC (명령 줄) 창을 다시 열어 적용해야합니다.
이미 구성된 환경 변수를 수정하지 않으려면 명령 줄 창에 다음 명령을 입력하여 JDK1.6.0_24를 발효시킬 수 있습니다.
set path = d : /jdk1.6.0_24/bin;% path% (그냥 입력)
그런 다음 JDK의 버전 번호가 Java 버전을 통해 변경되었는지 확인하십시오.
2 : 비교적 깨끗한 디렉토리로 이동하여 D 디스크에서 새 디렉토리 이름을 만들어이 디렉토리로 이동합니다.
3 : 웹 서비스를 켜십시오.
4 : 다음 명령을 입력하십시오.
wsimport s. http://127.0.0.1:9999/helloworld?wsdl
매개 변수 설명 : -s는 소스 코드 파일의 컴파일을 말하고 다음 (점)은 이전 장소에 넣습니다.
마지막 HTTP…는 WSDL 명령 매뉴얼을 얻는 주소를 나타냅니다.
5 : 현재 .java 파일과 .class 파일이 생성됩니다. (원래 패키지 이름을 포함하는 둘 다). 코드를 프로젝트에 복사하십시오. (Java 파일 만 복사)
6 : 새 프로젝트에서 새로운 클래스 (모든 패키지 아래에 위치 할 수 있음) 위에서 생성 된 코드에 전화하여 다음 페이지의 PPT를 참조하십시오.
7 : WSimport 기타 매개 변수, 우리가 자주 사용하는 매개 변수는 -d, -s, -p입니다.
-d <directory>는 .class 파일을 생성합니다.
예 : wsimport d. http://127.0.0.1:9999/helloworld?wsdl
-s <directory> .java 파일을 생성합니다.
예 : Wsimport s. http://127.0.0.1:9999/helloworld?wsdl
-p <package name> 생성 된 파일을 수정합니다 (.java 또는 .class가 지정된 패키지 이름으로 class)
예 : wsimport -s. -p com.beijing.itcast http://127.0.0.1:9999/helloworld?wsdl
-p 매개 변수의 경우 패키지 이름의 수정에주의하십시오. -p로 지정된 패키지 아래에 생성 된 모든 클래스를 배치합니다. (데모)
-p 매개 변수 만 사용하면 -d를 동시에 사용하여 .class 파일로 컴파일합니다. D 매개 변수가 작성되었는지 아닌 경우에는 없으며 결코 떠나지 않습니다.
runmain.java의 소스 코드는 다음과 같습니다.
패키지 com.leaf; import com.itcast.helloworld; import com.itcast.helloworldservice; /*** 생성 된 클래스*/public class runmain을 호출하여 원격 코드를 호출합니다. 문자열 str = helloworld.sayhello (); // 호출 시스템을 실행합니다 .err.println (str); // return helloorld string}}}
웹 서비스와 일반 웹 프로그램의 차이점
1. WebService는 HTTP 게시물 만 사용하여 데이터를 전송하며 Get을 사용하지 않습니다.
1) TTTP Post의 내용 유형은 다음과 같습니다
(1) 응용 프로그램/x-www- 형태-혈전
2) WebService의 내용 유형은 다음과 같습니다
(2) 텍스트/XML 비누 1.1
(3) 적용/비누+XML 비누 1.2
2. WebService는 데이터 전송 형식에서 제한됩니다.
WebService에서 사용하는 데이터는 XML 형식을 기반으로합니다. 현재 표준 웹 서비스는 주로 데이터 형식의 SOAP 프로토콜을 사용합니다. SOAP 프로토콜은 실제로 XML 인코딩 사양을 기반으로 한 텍스트 프로토콜입니다.
웹 서비스와 웹 서버의 차이점 :
웹 서버에서 WebService를 응용 프로그램으로 생각할 수 있습니다. 반면, 웹 서버는 웹 서비스 런타임에 필요한 컨테이너입니다. 이것이 그들의 차이와 연결입니다.
웹 서비스의 기능 :
1. WebService는 HTTP 게시물을 통해 고객 요청을 수락합니다
2. SOAP 프로토콜은 일반적으로 XML 데이터를 전송하기 위해 WebService와 클라이언트간에 사용됩니다.
3. 교차 플랫폼 또는 교차 언어 용으로 설계되었습니다.