Virtuoso 유니버설 서버
Virtuoso Universal Server개발자 | OpenLink 소프트웨어 |
---|---|
안정된 릴리스 | 7.2.7 / 2022년 5월 [1] , 전( |
저장소 | |
기입처 | C |
운영 체제 | 크로스 플랫폼 |
유형 | Triplestore, RDBMS, 애플리케이션 서버, 웹 서버 |
면허증. | GPLv2[2] 및 독자 사양 |
웹 사이트 | 공식 웹사이트 |
Virtuoso Universal Server는 기존 RDBMS(Relational Database Management System), 객체-Relational Database(ORDBMS), 가상 데이터베이스, RDF, XML, 자유 텍스트, 웹 애플리케이션 서버 및 파일 서버 기능을 하나의 시스템에 결합한 미들웨어 및 데이터베이스 엔진 하이브리드입니다.Virtuoso는 전술한 각 기능 영역에 전용 서버를 배치하는 것이 아니라 '범용 서버'로서 여러 프로토콜을 구현하는 단일 멀티스레드 서버 프로세스를 가능하게 합니다.Virtuoso Universal Server의 무료 오픈 소스 에디션은 OpenLink Virtuoso라고도 합니다.이 소프트웨어는 Kingsley Uyi Idehen 및 Orri Erling과 함께 OpenLink Software에 의해 개발되었습니다.
데이터베이스 구조
핵심 데이터베이스 엔진
Virtuoso는 관계형 액세스의 유연성을 상속, 런타임 데이터 입력, 레이트 바인딩 및 ID 기반 액세스와 결합하는 확장된 객체 관계형 모델을 제공합니다.Virtuoso Universal Server 데이터베이스에는 물리적 파일과 스토리지와 상호 작용하는 메모리 스토리지 및 운영 체제 프로세스가 포함됩니다.HTTP, SOAP 및 기타 프로토콜에 대해 지정된 포트에 수신기가 있는 하나의 주요 프로세스가 있습니다.
아키텍처
Virtuoso는 운영체제 스레드화와 여러 CPU를 지원하도록 설계되었습니다.클라이언트 간에 공유되는 조정 가능한 스레드 풀을 가진 단일 프로세스로 구성됩니다.단일 인덱스 트리에서 서로 간섭을 최소화하면서 여러 스레드가 작동할 수 있습니다.데이터베이스 페이지의 캐시는 모든 스레드 간에 공유되며 오래된 더티 페이지는 백그라운드 프로세스로 디스크에 다시 기록됩니다.
데이터베이스에는 항상 깨끗한 체크포인트 상태와 이 체크포인트 상태에 대한 커밋된 변경 또는 커밋되지 않은 변경이 있습니다.이를 통해 트랜잭션이 커밋 상태로 진행되는 동안 체크포인트 상태의 클린백업을 수행할 수 있습니다.
트랜잭션로그 파일은 마지막 체크포인트 이후의 모든 트랜잭션을 기록합니다.트랜잭션 로그 파일을 무기한 보존 및 아카이브하여 데이터베이스에 대한 전체 복구 가능한 기록을 제공할 수 있습니다.
모든 테이블을 저장하기 위해 단일 파일 세트가 사용됩니다.모든 임시 데이터에 대해 별도의 파일 세트가 사용됩니다.파일 세트의 최대 사이즈는 32 테라바이트(4G × 8K 페이지)입니다.
잠금
Virtuoso는 커서가 페이지 행의 대부분을 차지하고 있거나 전체 페이지를 잠근 이력이 있는 경우 행 수준 잠금에서 시작하여 페이지 수준 잠금으로 에스컬레이션하는 동적 잠금을 제공합니다.잠금 에스컬레이션은 동일한 페이지에서 잠금을 유지하는 다른 트랜잭션이 없는 경우에만 발생하므로 교착 상태가 되지 않습니다.Virtuoso SQL은 독점 읽기 및 트랜잭션 격리를 설정하는 수단을 제공합니다.
트랜잭션
다음 4가지 분리 레벨이 모두 지원됩니다.더티 읽기, 읽기 커밋, 반복 가능 읽기 및 시리얼화 가능.격리 수준은 단일 트랜잭션 내 작업에 의해 지정될 수 있습니다.Virtuoso는 Microsoft의 Distributed Transaction Coordinator(MS DTC) 또는 XA 표준에 따라 리소스 관리자 및/또는 트랜잭션 코디네이터 역할을 수행할 수도 있습니다.
데이터 무결성
Virtuoso ORDBMS 데이터베이스는 엔티티 무결성 및 참조 무결성을 지원합니다.Virtuoso는 참조 무결성을 적용하여 관련 테이블의 레코드 간의 관계가 유효함을 보장합니다.무결성 제약사항은 다음과 같습니다.
- NOT NULL – 테이블의 정의 내에서 Virtuoso에서는 데이터에 NULL 값을 포함할 수 있습니다.이 NULL 값은 실제로는 값이 아니며 값의 부재로 간주됩니다.NOT NULL이라는 제약조건은 강제로 컬럼에 값을 지정합니다.
- [Unique] 키: 열 또는 열 집합의 고유성은 해당 열 또는 열 집합의 값이 해당 테이블의 다른 열 또는 열 집합과 달라야 함을 의미합니다.고유 키에는 NULL 값이 포함될 수 있습니다.정의상 NULL 값은 고유한 비값이기 때문입니다.
- 프라이머리 키– 프라이머리 키는 테이블 내의 행을 일의로 식별하도록 설계되어 있다는 점을 제외하면 고유 키와 매우 유사합니다.단일 열 또는 여러 열로 구성될 수 있습니다.기본 키에는 NULL 값을 포함할 수 없습니다.
- 체크 제약 – Virtuoso는 데이터를 삽입 또는 수정하기 전에 특정 조건을 충족해야 하는 무결성 제약 조건을 컬럼에 제공합니다.체크가 충족되지 않으면 트랜잭션을 완료할 수 없습니다.
데이터 사전
Virtuoso는 데이터베이스 내의 모든 사용자 개체에 대한 모든 정보를 db.dba*에 의해 지정된 시스템 카탈로그 테이블에 저장합니다.
컴포넌트와 파일
구성 요소들
Virtuoso는 클라이언트와 서버 컴포넌트로 구성됩니다.이러한 구성 요소는 일반적으로 다음과 같은 로컬 또는 원격 Virtuoso 서버와 통신합니다.
- ODBC, JDBC, ADO용 Virtuoso 드라이버.NET 및 OLE DB
- 컨덕터, 웹 기반 데이터베이스 관리 사용자 인터페이스
- ISQL(인터랙티브 SQL) 및 ISQO 유틸리티
- 매뉴얼 및 튜토리얼
- 샘플
설치에는 기본 데이터베이스와 데모 데이터베이스의 두 가지 데이터베이스가 있습니다.
역사
Virtuoso 프로젝트는 1998년 OpenLink 데이터 액세스 미들웨어와 Kubl RDBMS의 합병으로 시작되었습니다.
Kubl RDB씨
Kubl ORDBMS는 핀란드에 뿌리를 둔 관계형 데이터베이스 시스템 목록 중 하나였다.이 목록에는 MySQL, InnoDB 및 Solid RDBMS/Solid Technologies도 포함됩니다.
대부분의 테크놀로지 제품과 마찬가지로 OpenLink Virtuoso, InnoDB 및 Solid의 주요 담당자는 핀란드 데이터베이스 테크놀로지 개발 역사에 대한 주목할 만한 통찰력을 제공하는 프로페셔널 오버랩 기간을 공유합니다.Heikki Tuuri(InnoDB의 크리에이터), Ora Lassila(W3C 및 Nokia Research, Tim Berners-Lee와 함께 RDF 및 시멘틱 웹 전반의 선도자 및 비전자), Orri Erling(OpenLink Software의 Virtuoso Program Manager)은 모두 스타트업 엔티티에서 협력했습니다.n Lisp 및 Prolog의 PC 초기 세대용 개발 환경. 1986–88년.
이후 Orri Erling은 VIA/DRE 개발자인 VIA International과 협력하여 회사의 DBMS 제품 상단에 LISP 기반의 객체 지향 데이터 액세스 레이어를 설계했습니다.VIA의 핵심 개발팀은 1992년 회사가 폐업한 후 Arturi Tarjanne의 지휘 아래 Solid Technologies를 설립했습니다.
Heikki Tuuri는 Solid에서 잠시 근무한 후 InnoDB(2005년 Oracle에 인수됨)가 된 자체 데이터베이스 개발 프로젝트를 시작했습니다.
Ori Erling은 1994년에 자신의 DBMS 개발 작업을 시작했고, 그것은 Kubl이 될 예정이었습니다.Kubl의 개발은 처음에 온라인 서비스를 위한 사내 소프트웨어 개발 프로젝트의 일환으로 핀란드 최대 무료 광고지의 발행사인 Infosto Group에 의해 자금 조달되었습니다.켈타넨 쾨르시의 온라인 버전은 한때 50만 명의 등록 사용자를 가진 핀란드에서 가장 인기 있는 웹사이트로 알려졌습니다.Kubl 데이터베이스는 검색 결과에 "Powered by Kubl" 로고로 두드러지게 표시되었습니다.
Kubl의 무료 평가판은 1996년 [3]11월 7일에 다운로드 할 수 있게 되었다.
Kubl은 임베디드용 고성능 경량 데이터베이스로 마케팅되었습니다. 개발 목표는 Transactions Per Second [4][5]테스트에서 최고 점수를 획득하는 것이었습니다.이 제품의 가격은 [6]199달러의 Linux 라이선스를 가진 Linux 사용자에게 특히 유리했다.
Kingsley Uyi Idehen과 Orri Erling이 1998년에 테크놀로지를 교차시킨 후 Kubl은 OpenLink Virtuoso의 주춧돌이 되었고, Kubl은 OpenLink Software에 의해 Kubl을 인수하게 되었습니다.
기능 영역
Virtuoso의 기능은 하나의 제품 오퍼링으로 종래와는 다른 광범위한 영역을 커버합니다.이러한 기능 영역에는 다음이 포함됩니다.
- (SQL, XML, RDF 및 플레인텍스트)의 객체 관계형 데이터베이스 엔진
- 웹 서비스 컴퓨팅 플랫폼
- 웹 응용 프로그램 서버
- 웹 콘텐츠 관리 시스템(WCMS)
- NNTP 기반 토론 관리
- 동종 및 이종 데이터 복제
- Mail Storage Sink 및 (POP3) 서비스 프록시
- 데이터 휴대성
구현된 프로토콜
Virtuoso는 다음과 같은 폭넓은 업계 표준 웹 및 인터넷 프로토콜을 지원합니다.
HTTP, WebDAV, CalDAV, CardDAV, SOAP, UDDI, WS-Security, WS-Reliable Messaging, WS-Routing, WS-Reference, WS-Attachment, WS-BPEL, Sync-QL, GDATA
API 지원
데이터베이스 애플리케이션 개발자 및 시스템 인테그레이터를 위해 Virtuoso는 ODBC, JDBC, OLE DB, ADO를 포함한 다양한 업계 표준 데이터 액세스 API(클라이언트 및 서버)를 구현합니다.NET, ADONET Entity Framework, XMLA.
콘텐츠 신디케이션 및 교환 포맷 지원
웹 애플리케이션 개발자 및 컨텐츠 신디케이트 퍼블리셔 및 소비자를 위해 Virtuoso는 Atom, RSS 2.0, RSS 1.0, OPML, XBEL, FOAF, SIOC 등의 표준을 지원합니다.
언어 지원 쿼리
SQL, SPARQL(다수 확장 기능 포함), XQuery(핵심 기능 라이브러리 구현이 매우 불완전함), XPath(1.0만), XSLT(1.0만)
스키마 정의 언어 지원
사용 시나리오
Virtuoso는 다음과 같은 시스템 통합 과제를 해결하는 솔루션입니다.
- 엔터프라이즈 정보 통합(EII)
- 프로그래밍 언어에 의존하지 않는 웹 응용 프로그램 배포
- 서비스 지향 아키텍처의 원리를 활용하는 일원화된 애플리케이션 분해
- 대량의 WS-* 프로토콜을 통한 웹 서비스 기반 엔터프라이즈 애플리케이션 통합
- BPEL을 통한 비즈니스 프로세스 관리
- 시맨틱 웹 데이터 공간 생성
- RDF 기반 Linked Data를 시멘틱 데이터 웹에 주입하기 위한 도입 플랫폼
관련 기술 분야
데이터 관리
엔터프라이즈 애플리케이션, 정보 및 데이터 통합
- Web 2.0
- 엔터프라이즈 서비스 버스
- 서비스 지향 아키텍처
- 엔터프라이즈 애플리케이션 통합
- 데이터 통합
- 오픈 시멘틱 프레임워크
- 웹 서비스
- 시멘틱 웹
- 비즈니스 통합 서버 비교 매트릭스
관련 제품 및 도구
OpenLink Software는 Virtuoso 외에도 다음과 같은 몇 가지 관련 도구와 애플리케이션을 생산하고 있습니다.
- OpenLink Data Spaces – 시맨틱 웹/링크 데이터 웹 존재감을 비용 효율적으로 생성 및 관리하기 위한 Virtuoso 기반 플랫폼입니다.서드파티 소셜 네트워크 서비스, 블로그, 파일 공유, 공유 및 소셜 북마크, Wiki, 이메일, 사진 공유, RSS 2.0, ATOM 및 RSS 1.1 콘텐츠 집약 서비스 간에 데이터를 통합하기 위한 데이터 정션 박스를 제공합니다.또한 서드파티 통합 기능 외에도 앞서 언급한 각 웹 애플리케이션 영역에 걸쳐 Linked Data 준거 분산 협업 애플리케이션의 풍부한 컬렉션도 포함되어 있습니다.
- 범용 데이터 액세스 드라이버– ODBC, JDBC, ADO용 고성능 데이터 액세스 드라이버.여러 플랫폼 및 데이터베이스에 걸쳐 엔터프라이즈 데이터베이스에 대한 투명한 액세스를 제공하는 NET 및 OLE DB.
플랫폼
Virtuoso는 크로스 플랫폼 Windows, UNIX(HP, AIX, Sun, DEC, BSD, SCO), Linux(Red Hat, SUSE), macOS 등 다수의 32비트 및 64비트 플랫폼에서 지원됩니다.
라이선스
2006년 4월, GNU General Public License 버전2에서 Virtuoso의 무료 소프트웨어 버전을 이용할 수 있게 되었습니다.이 소프트웨어는 현재 상용 및 오픈 소스 라이센스 [7]버전으로 제공됩니다.
레퍼런스
- ^ "Virtuoso Open Source 7.2.7 Release Notes". 10 May 2022. Retrieved 21 June 2022.
- ^ OpenLink Software. "Virtuoso Open-Source License Terms". Retrieved 2011-03-30.
- ^ "Kubl RDBMS Free Trial Downloading Now". 7 November 1996. Retrieved 2010-02-03."Kubl RDBMS Free Trial Downloading Now". Newsgroup: comp.os.linux.misc. 7 November 1996. Usenet: pgpmoose.199611072316.10073@liw.clinet.fi.
- ^ http://sal.linet.gr.jp/H/1/KUBL.html[데드링크]
- ^ "DBMS Benchmark code? Who's fastest?". 11 April 1996. Retrieved 2010-02-03.
- ^ "Kubl RDBMS for Linux". 12 November 1997. Retrieved 2010-02-03.
- ^ OpenLink Software (11 April 2006). "Open Source Edition of OpenLink Virtuoso, Unleashed!". Retrieved 2010-02-03.