ORACLE в гетерогенных сетях

 

      Сегодня большинство организаций имеют в своем распоряжении обширный парк компьютеров различных типов и фирм. Часть задач решается на больших компьютерах (mainframe), широкое распространение получили персональные компьютеры фирм IBM и Apple. Многие организации или филиалы организаций используют машины среднего класса (VAX, SUN, HP, RISC 6000). Приобретают популярность и ранее непривычные для нашей страны машины, обеспечиваюшие повышенную надежность работы (Fault Tolerance) и сверхвысокое быстродействие (многопроцессорные и массивно-параллельные архитектуры). Это например, Cray, Sequent, N-cube, Stratus, Pyramid. Кроме того, в системах, требующих повышения надежности за счет резервирования компьютеров используются более дешевые решения, основанные на использовании кластера компьютеров . Сегодня в нашей стране наиболее часто кластер реализуют на базе компьютеров VAX, Sequent, RISC 6000, а вскоре к ним присоединятся HP и SUN. Естественно, что на всех этих компьютерах работают разные операционные системы. Даже на компьютерах одного типа могут быть различные ОС.

      Сегодня уже никого не надо убеждать в том, что для успешной работы организации необходимо обеспечить совместное использование информации. Различные задачи, решаемые на ЭВМ должны использовать данные полученные при работе других задач (возможно решаемых в это же время и на других ЭВМ). Различные пользователи также должны иметь возможность одновременно использовать одну и ту же информацию, оперативно узнавать об изменениях этой информации. Поэтому приходится об'единять компьютеры в сети, организовывать локальные и глобальные сети. Причем эти сети могут использовать различные сетевые протоколы (TCP/IP, SPX/IPX, LU 6.2, DecNet, Async и т.д.).

      Если у Вас существует такой "зоопарк" компьютеров, операционных систем, сетевых протоколов, а часть машин расположена в других городах и странах и Вы хотите реализовать приложение, работающее в этой гетерогенной сети и использующее данные нескольких компьютеров, то Вы столкнетесь со множеством проблем. Наиболее типичными способами частичного решения этих проблем являются следующие:

 

      1. Использование на всех компьютерах  программных  средств одной фирмы;

      2. Использование на персональных компьютерах-клиентах  популярных  персональных  СУБД  с "дополнительными" пакетами для этих СУБД,  позволяющими им работать с сервером БД  конкретной фирмы;

      3. Использование для разработки клиентских приложений специальных  высокоуровневых  инструментальных средств разработки приложений, умеющих работать с основными реляционными серверами БД;

      4. Использование в качестве платформы для клиентских  приложений персональных компьютеров с MS Windows,  на которых работают пакеты, обеспечивающие стандарт обмена данными DDE;

      5. Использование   на   компьютерах-клиентах  и  компьютерах-серверах пакетов, поддерживающих один из стандартов интерфейса клиент-сервер (ODBC, IDAPI, DAL и т.д.);

      6. Использование  пакетов,  поддерживающих   совокупность стандартов интерфейса  клиент - сервер и позволяющих использовать в макрокомандах и процедурах на языке 4GL различных прикладных  пакетов единый набор команд для работы с БД,  файлами, почтовыми системами и т.д.;

      7. Использование на  компьютерах-серверах  БД  специальных пакетов-шлюзов;

      8. Использование систем распределенных транзакций (мониторов транзакций).

      Однако простейшим и самым надежным решением всех Ваших проблем будет использование продуктов фирмы Oracle на всех узлах Вашей сети (хотя Oracle позволяет реализовать и остальные перечисленные выше частичные решения). Oracle позволяет решить проблемы, связанные с использованием гетерогенных сетей, обеспечивая полную независимость Ваших приложений от типа компьютера, операционной системы, сетевого протокола.

      Сегодня продукты фирмы Oracle работают более чем на 80 вычислительных платформах (компьютер + операционная система). В это число входят все основные компьютеры и архитектуры, упомянутые в  этой статье, и многие другие от mainframe до PC . Например только на РС Oracle работает в операционных системах  (MS DOS, MS Windows, SCO Unix, Solaris, UnixWare, OS/2, Windows NT, Novell NetWare и т.д.). Более того, фирма Oracle тщательно следит за появлением новых перспективных вычислительных платформ и новых версий ОС и тут же портирует свои продукты в эту среду. Пример - Windows NT, Chicago (Windows 95), SMP и MMP архитектуры и т.д. При портации Oracle старается максимально использовать возможности каждой платформы, поэтому ее продукты работают хорошо на любой платформе .

      С другой стороны Oracle обеспечивает "одинаковость" своих продуктов на всех платформах. Т. е. везде средства Oracle c точки зрения пользователя и разработчика приложений работает одинаково, имеет одни и те же функции и интерфейсы. Это позволяет обеспечить независимость приложений от вычислительных платформ. Например, приложения и базы данных, разработанные в MS Windows или в Unix, можно даже без участия разработчика перенести на любую из 80 вычислительных платформ и они будут там успешно работать. Теперь при разработке приложений Вы можете не думать о вычислительных платформах, где будут работать программы, а сосредоточиться на реализации функциональных возможностей приложений. Блее того, Вам гарантируется, что при появлении в будущем новых перспективных вычислительных платформ (а они появляются все чаще и чаще, становятся все быстрее и дешевле) Ваши приложения будут работать и там. Вы можете в процессе эксплуатации системы менять менее мощные компьютеры на более мощные. Т. е. Ваши сегоднешние инвестиции в разработку не пропадут.

      Очень важно и то, что разрабатывая приложения Вы не должны думать о том, в какой архитектуре сети и с какими сетевыми протоколами оно будет работать. Приложение можно даже разрабатывать на отдельно стоящей машине, а потом превращать в многопользовательское с архитектурой клиент-сервер (распределенная обработка). Также легко можно переходить от использования одной центральной базы данных к работе с распределенной базой данных (т. е. выносить часть данных в другие узлы сети). Все эти работы не требуют модификации уже разраобтанных приложений. А вопросы, связанные с поддержанием целостности и непротиворечивости данных и обеспечением быстродействия при многопользовательской работе, решаются обычно не разработчиком, а программным обеспечением Oracle. Пользователь часто даже не знает в каком узле сети (возможно в каком городе) находятся данные, которые он использует.

      Связь между компьютерами осуществляется с помощью компоненты Oracle SQL*Net. Она связывает клиентские и серверные машины, а также серверы распределенной БД между собой. SQL*Net не только обеспечивает и контролирует связь, но и выполняет перекодировку данных (поскольку в гетерогенной сети различные компьютеры используют различные кодовые таблицы). В состав SQL*Net входят драйверы, обеспечивающие поддержку  используемых сетевых протоколов. Например, если Ваш компьютер - сервер связывается с частью клиентов по протоколу TCP/IP, с частью по протоколу SPX/IPX, а с VAX - сервером по протоколу DecNet, Вам достаточно включить в состав SQL*Net драйверы этих протоколов. Если же позднее один из Ваших клиентов, использовавших протокол TCP/IP, переехал в другой город, то Вам достаточно заменить у него драйвер протокола TCP/IP на драйвер Async и он продолжит работу с сервером, используя модемную связь.

      Конечно, для того, чтобы реализовать систему на гетерогенной сети, Вам придется установить программное обеспечение ядра Oracle на всех компьютерах - серверах, run-time программное обеспечение Oracle на компьютерах-клиентах и программное обеспечение SQL*Net на всех этих компьютерах. Однако Oracle позволяет использовать в качестве узлов распределенной БД не только Oracle но и СУБД других фирм. Это реализуется с помощью шлюзов (Oracle Transparent Gateway - шлюз для данных и ORACLE Procedural Gateway - процедурный шлюз). При этом одним из узлов распределенной БД может быть СУБД DB2, SQL/DS, RMS и т.д. Oracle не работает на машинах AS 400, но Transparent Gateway к СУБД OS/400 имеет.

      Сегодня Oracle имеет шлюзы для данных к следующим СУБД: DB2, SQL/DS, TurboIMAGE, Adabas, IDMS, SQL/400, VSAM, Rdb, RMS, IMS, Teradata, DRDA (DB2 на MVS, SQL/DS на VM, SQL/400 и DataManager на OS/2), XDM/RD, Nonstop SQL, SESAM, IDMSX  и разрабатывает шлюзы для данных к Ingres, Informix, DB2 на OS/2 и RISC 6000, EDA/SQL(VSAM, ISAM, ADABAS, TOTAL, Teradata, IMS, CA-IDMS/DB, System 2000, FOCUS, Infoman, QSAM, CA-Datacom, Supra, SAP, Model 204).

      Шлюз для данных устанавливается на той же машине, что и "чужая" СУБД (или на дополнительной машине - для DRDA и Teradata), и для Oracle и его продуктов связка шлюз +"чужая" СУБД выглядит как Oracle - сервер. Шлюз принимает SQL запросы от продуктов и серверов Oracle и преобразует их в команды "чужой" СУБД. Преобразуются и данные. При выборке данных из "чужой" СУБД шлюз преобразует их в структуры Oracle.

      Процедурный шлюз устанавливается на дополнительной машине и позволяет использовать в качестве узла распределенной БД СУБД и файловые системы, работающие в среде мониторов транзакций CICS, IMS/TM, CA-IDMS/DC.  Это позволяет Вам работать с данными IMS, VSAM, ADABAS, CA_IDMS/DB, DB2, Model 204. Причем работа ведется с использованием механизма RPC - процедур (Remote Procedural Control), что обеспечивает более быстрый доступ к данным, чем Transparent  Gateway.

      Кроме упомянутых шлюзов (процедурных и по данным) к конкретным СУБД и файловым системам ORACLE имеет инструментальные средства Open Gateway Toolkit. Эти средства позволяют строить процедурные шлюзы и шлюзы для данных для любых источников данных (файлы, СУБД, банкоматы, устройства для работы со штрих-кодом и т. д.). Однако построение новых шлюзов требует написания дополнительных программ на языке 3GL.

      Таким образом использование продуктов Oracle скрывает от Вас всю сложность гетерогенной сети, архитектуры клиент-сервер, распределенной БД и распределенной обработки. Это позволяет Вам реально и надежно реализовать разделение информации в Ваших задачах.

 

Hosted by uCoz