“서비스 지향 아키텍처”라는 용어가 의미없는 전문 용어가 되었습니까? [닫은]

나는 오늘 “서비스 지향 아키텍처”에 대한 경험이 있는지 물어 보았지만 그렇게 생각합니다. 나에게이 개념은 너무 어리둥절 해 보인다. 나는 그 질문에 더 이상 정직하게 대답 할 수있는 방법을 모른다.

개념에 대한 간결한 정의와 다른 아키텍처와의 차이점을 찾기 위해이 용어를 인터넷 검색에 의존했습니다. 그것에 대한 많은 기사를 읽은 후, 내가 찾을 수있는 유일한 공통 스레드는 XML / SOAP에 대한 약간의 선호도를 가진 일종의 인터페이스를 통해 서로 대화하는 여러 구성 요소가있는 시스템입니다.

거의 모든 응용 프로그램을 SOA, 특히 웹 응용 프로그램으로 정의 할 수있는 것 같습니다. 이 용어가 “Web 2.0″트랩에 속하고 원하는 의미를 갖는 용어가 되었습니까?

내가 기지에서 나가는가? 너희들이 그 용어를들을 때 그것은 당신에게 특정한 것을 의미 하는가? 그렇다면 SOA가 무엇이고 무엇이 아닌지 명확하게 보여주는 간결한 정의를 원합니다.



답변

SOA의 원래 의미는 프로그래밍 방식으로 사용할 수있는 잘 정의 된 인터페이스가있는 서비스를 기반으로했다고 생각합니다 . UI 터미널, 통신 또는 데이터베이스가 아닌 서비스 인터페이스에 중점을 두었습니다. 중요한 부분은 다른 서비스를 소비하는 서비스였습니다. 서비스 A는 서비스 B에 전화를 걸고 결과를 가져오고 서비스 C 또는 D에 전화 할 수 있습니다. 고객 문제를 해결하는 방식으로 서비스를 결합하여 전문화 된 서비스를 제공하고 솔루션을 설계 할 수 있습니다.

SOA는 종종 SaaS (서비스로서의 소프트웨어)와 혼동되는데, 이는 소프트웨어 제품의 사본에 대한 라이센스를 구매하는 대신 사용자가 가입 한 서비스의 사용에 대해 비용을 지불하는 가격 책정 모델을 나타냅니다. 귀하의 질문에서 세 번째 단락에 대답하기 위해 웹 응용 프로그램은 SOA가 아니지만 SaaS가 될 수 있습니다.

이 용어는 그 의미의 일부를 분명히 잃어 버렸습니다. 내가 일하는 조직에서는 용어 SOA는 종종 SaaS는과 같은 의미로 사용되며, IT 전문가 (의 팀을 의미 정보 기술 에 반대 소프트웨어 제품 개발 구성 서버와 라우터 및 설치 소프트웨어 제품이 그들에 실행). 그들 중 일부는 “SOA Architect”와 같은 제목을 가지고 있지만 소프트웨어 설계, 설계, 구현 또는 테스트와는 아무런 관련이 없습니다.


답변

SOA가 실제로 무엇인지 확인하기 위해 인터넷 검색을 수행하는 것과 동일한 작업을 수행했으며 예, 상당히 악용됩니다. SOA를 생각할 때 다음을 생각합니다.

  1. 검색 가능한 헤드리스 프로그램 …
  2. 상태 비 저장 연결 (ala HTTP)을 사용합니다 …
  3. 플랫폼 독립적 형식으로 통신

SOA는 링커를 통해 프로그램에 연결된 모듈 인 클라이언트-서버 아키텍처 (상태 저장 서비스 아키텍처) 및 라이브러리와 대조 될 수 있습니다.

사람들이 그것에 대해 이야기 할 때 나는 일반적으로 소금 알갱이로 가져갑니다. 또한 “웹 서비스”라고 부르는 경향이 있습니다. 웹 서비스를 통해 아키텍처가 암시됩니다.


답변

SOA의 엄격한 정의는 많은 경우 이론적으로 비용 / 혜택 라인을 훨씬 넘어 섭니다.

제품 자체가 서비스가 아니라면 종종 다른 관점이 필요합니다.

사용 가능한 SOA 정의는 전체 아키텍처가 서비스 친화적임을 의미합니다. 원자 서비스로 완전히 구축 된 시스템은 일반적으로 올바른 계획이 아니며 일부 서비스는 기능적으로 구성되는 반면 다른 서비스는 단일 책임이됩니다. 블랙 박스가 있거나 오프라인 프로세스가있을 수 있지만 검색 가능한 서비스 모음이 있으면이를 통해 최소한의 정의로 의미있는 작업을 수행 할 수 있습니다.

실제로 의미하는 바에 대한 논쟁 외에도, 개념 (무엇이 의미하든)은 단순히 적합하지 않은 장소에 적용되어 많은 분야에서 어려움을 겪었습니다.

예를 들어, 블랙 박스 프로세스를 의미하고 세분화 및 분배가 아닌 병렬 처리를 통해 확장되는 것을 구축하는 경우 블랙 박스에 노출 / 토크하는 서비스가있을 수 있지만 일부 사람들은 서비스를 상자.

엄격한 기술적 정의로서 그것은 항상 정의되지 않았지만 아이디어는 그것이 어디에 적합한 지에 대한 가치가 없습니다.


답변

SOA에서 관리가 판매 된 몇 가지 회사 시스템에서 작업 할 수밖에 없었습니다. 개발자는 시스템을 살펴보고 웹 서비스를 수행하는 많은 소프트웨어를 볼 수 있습니다. 이 서비스는 다양한 언어와 아키텍처로 작성되었을 수 있으며, 서비스를 호출하는 클라이언트와 관련이없고 관련이 없으며 문서의 어느 곳에 나 “SOA”라는 약어가 없습니다.

그러나 경영진은 “SOA”를 원합니다 !!! 그래서 그들은 이전의 “웹 서비스”스티커 위에 “SOA”스티커가 적용된 특정 대기업으로부터 정말 비싼 서버를 구입했습니다. 이전의 “JEE”스티커 위에 적용된 …. 아이디어를 얻습니다. 결과적으로 개발자는 화면에 이티 비트 아이콘을 끌어다 놓아 EBJ3 Bean, 스프링 구성 요소 등과 같은 간단한 작업으로 절반 정도 작동하는 “SOA” “COMPONENTS”를 만들 수 있습니다. .

SOA에 대한 질문에 “예를 들어 SOA를 해봤습니다. 서비스 지향 아키텍처를 사용하여 작업을 수행하는 많은 시스템을 작성했습니다. 어떤 SOA 기술을 요구하십니까?”라고 조언합니다. 그리고 그들이 빛나는 눈으로 이야기하기 시작하면 SOA 구성 요소, 드래그 앤 드롭, 그리고 개발이 더 쉬워지는 방법에 대해주의 깊게 살펴 봅니다. 천천히 뒤로 물러서서 눈을 마주 치지 마십시오!


답변

한가지는 필요할 때 호출되는 “슬레이브”모듈이있을 때, 다른 하나는 서비스 / 데몬 프로세스가 독립적으로 실행되고 요청에 응답하여 서로 대화하고 가능할 때입니다. 다시 말해서 자신의 삶. 이 방법을 사용하면 확장 가능하고 물리적으로 분산 된 거대한 시스템을 가질 수 있습니다. 예를 들어 모바일 전화 분야에서 일부를 보았습니다. 그러나 이것은 단지 추측입니다.

(이제 위키 백과가 SOA 에 대해 말하는 것을 보자 … 우와.)