저는 여행 업계에서 귀하가 설명하는 정확한 종류의 프로젝트에 대한 소프트웨어 설계자 / 프로젝트 리더로 일하고 있습니다. 우리 지역에서는 공급 업체와 직접 협력하지만, 나가는 경우에는 여러 애그리 게이터와 연결합니다.
당신의 질문에 답하기 위해 ... 당신이 가지고있는 일부 데이터, 다양한 방법으로 얻을 수있는 일부, 그리고 일부는 고문 할 때까지 고문하고 비틀어 야합니다.
당신의 각도는 무엇입니까?
물어봐야 할 질문은 ... 카약과 같은 광고를 판매하고 싶습니까 아니면 익스 피디아와 같은 광고를 하시겠습니까? 검색이나 여행 서비스 판매에 관심이 있습니까? 틈새 시장 (예 : 항공 여행) 또는 모든 것 (숙박, 항공사, 렌터카, 교통 / 관광 / 회의 등의 추가 서비스)을 타겟팅합니까? 지역 (미국 또는 미국 일부) 또는 전 세계를 타겟팅합니까? 얼마나 깊이 이동합니까? 단일 화면에 여러 사이트를 표시합니까, 아니면 여러 서비스를 함께 묶어 동적으로 패키징합니까?
데이터 얻기
Kayak 비즈니스 모델을 사용하는 경우 기술적으로 사이트의 허가가 필요하지 않지만 많은 사이트에는 IFrames 또는 다른 간단한 방법으로 고객을 사이트로 안내하는 제휴 프로그램이 있습니다. 장점으로는 지불 / 불만 및 여행자 스스로 처리 할 필요가 없습니다. 단점은 ... 직접 가격을 비교하고 가장 저렴한 옵션을 사용자에게 제공하려면 더 깊은 수준에서 통합해야하며 이는 API와 웹 스크래핑을 의미합니다.
웹 스크래핑은 ... 피하십시오. 짜증 난다. 정말. 그냥 하지마. 이것에 대해 저를 믿으십시오. 예를 들어, 웹 스크래핑 없이는 얻을 수없는 저렴한 비용과 같은 것들이 있습니다. 저가 항공사는 부가가치 서비스를 기반으로합니다. 사용자가 자신의 웹 사이트를 볼 수 없다면 추가로 물건을 팔지 않고 아무것도 얻지 못합니다. 따라서 제휴사가없고 API를 제공하지 않으며 사이트 레이아웃을 거의 지속적으로 변경합니다. 그러나 웹 사이트를 스크랩하여 멋진 API로 래핑하여 생계를 유지하는 회사가 있습니다. 여유가 있다면 사용자에게 저가 항공편의 비용 비교를 제공 할 수 있으며 이는 엄청납니다.
반면에 API를 제공하는 "일반적인"이동 통신사가 있습니다. 항공사는 모두 IATA 하에 통합되어 있기 때문에 항공사에 도착하는 것은 그리 큰 문제가 아닙니다 . 기본적으로 IATA에서 구매하면 IATA가 돈을 이동 통신사에 분배합니다. 그러나 통신사 네트워크에 직접 연결하고 싶지는 않을 것입니다. 요즘에는 웹 서비스와 SOAP가 있지만 80es 스타일 프로토콜을 사용하는 메인 프레임과 상호 작용할 수있는 텍스트 프롬프트 주위에 엄청나게 얇은 래퍼 인 SOAP 프로토콜이 있다고 말할 때 믿습니다 (유닉스를 생각하면 명령 당 요금이 청구되는 위치에 메시지가 표시되며 한 번의 검색을 수행하는 데 약 20 개의 명령이 필요합니다. 그렇기 때문에 더 나은 API를 사용하여 먹이 사슬의 아래쪽에있는 누군가와 연결하고 싶을 것입니다.
따라서 항공사는 가우시안 곡선의 두 극단에 있습니다. 한쪽에는 개별 공급 업체가 있고 다른 하나의 중앙 집중식 시스템에서는 하나의 API를 구현하고 전 세계 어디에서나 비행 할 수 있습니다. 숙박과 나머지 여행 상품은 그 사이에 있습니다. 호텔을 집계하는 여러 대기업과 스펙트럼의 일부만 다루는 집계자가 많은 소규모 공급 업체가 많습니다. 예를 들어 등대를 빌릴 수 있는데 그렇게 비싸지는 않지만 한 곳에서 다른 등대의 가격을 비교할 수는 없습니다.
Kayak 비즈니스 모델에 관심이 있다면 아마도 웹 사이트를 스크래핑하게 될 것입니다. 다른 공급자를 통합하는 경우 API를 사용하는 경우가 많으며, 그중 일부는 꽤 좋고 대부분은 허용 할 수 있습니다. RSS로 작업 한 적은 없지만 RSS와 웹 스크래핑 사이에는 큰 차이가 없습니다. Jeff의 대답에 언급되지 않은 네 번째 옵션도 있습니다. 예를 들어 FTP 등을 통해 .CSV 파일과 같이 야간에 데이터를 가져 오는 옵션입니다.
인생은 짜증나
그리고 복잡성이 있습니다. 추가하려는 가치가 많을수록 처리해야하는 복잡성이 증가합니다. 애완 동물이 허용되는 숙소를 검색 할 수 있습니까? 타운 센터에서 5km 미만 거리에있는 호스텔을 찾으 시나요? 항공편을 결합하고 있으며 여행자가 한 공항에서 다른 공항으로 이동할 수있는 충분한 시간을 보장 할 수 있습니까? 교통편을 미리 판매 할 수 있습니까? 유명한 첼리스트는 그의 귀중한 18 세기 첼로에서 헤어지기를 원하지 않습니다. 그에게 첼로를위한 다른 자리를 팔 수 있습니까?
가격을 비교하고 싶으십니까? 물론입니다. 객실 요금은 1 박당 EUR 30입니다. 하지만 30 인용 더블 1 개와 20 인용 싱글 1 개를 받거나 더블 침대 1 개를 추가하고 세 번째 사람에게 70 % 할인을받을 수 있습니다. 그러나 12 세 미만의 어린이 인 경우에만 해당됩니다. 엑스트라 베드는 성인용이 아닙니다. 그리고 검색 결과에서 엑스트라 베드 가격을 알 수 없습니다. 최종 가격을 계산할 때만 가능합니다.
그리고 동적 패키징을 시작하지 마십시오. 숙박 + 렌트카 판매를 원하십니까? 문제 없어요; 두 개의 서로 다른 제공 업체와 통합하고 이동 중 ... (렌트카 제공 업체에서) 호텔과 일치하도록 도시의 위치 목록을 수동으로 업데이트합니다 (각 호텔의 도시 만 제공하는 숙박 업체 제공 업체). 물론, 도시 코드에 대한 국제 표준이 없기 때문에 이미 두 도시의 목록을 일치 시켰다면 말입니다.
상품이 많은 다른 산업과 달리 여행 산업은 매우 복잡한 상품이 많습니다. 아마존은 쉽습니다. 책을 파는 것과 감자를 파는 것도 똑같습니다. 같은 상자에 넣어 배송 할 수도 있습니다. 그들은 쉽게 결합되고 많은 부품으로 조립되지 않습니다. :)
PS 비행에 관한 내부 정보 와 함께 Hacker News의 흥미로운 최근 스레드에 연결 . PPS는 최근 IATA의 NDC 프로토콜에 대한 다소 오래된 블로그 게시물에 여행 산업이 어떻게 연결되어 있는지에 대한 개요와 이것이 어떻게 탄생했는지에 대한 역사 교훈을 우연히 발견했습니다 .