Подружить Php(on Linux) с Lotus (on Nt)?

yerke

Well-known member
28.08.2007
392
0
#1
Есть ли у кого реально работающие примеры того
как с помощью пхп доставать данные из Лотуса
 
I

interrupt

#2
Мы делали так - серверный агент выгружает на сервер в XML файл нужные документы и далее их использовала программа на php (задача была передавать данные из лотуса на веб-портал на пхп)
Есть статья на
IBM developerWorks "Создание UI на PHP для IBM Lotus Domino"
в которой описаны три способа доступа к ресурсам домино:
* COM-объекты
* The Notes API
* XML через Web
Есть примеры.
 

yerke

Well-known member
28.08.2007
392
0
#3
Мы делали так - серверный агент выгружает на сервер в XML файл нужные документы и далее их использовала программа на php
ну есть такая идея
но это не подходит так ка сервенный агант будет работать по расписанию
а нам нужен чтоб на сайте сразу же отображался оценки студента
 
I

interrupt

#4
Сделайте так - основной серверный агент работает скажем раз в день ночью, выгружая все данные.
Далее. Если происходят изменения документов, на каждый док, который надо снова выгрузить создается ответный документик - заявка (тикет).
В течении дня работает маленький агентик каждые 5 минут, который смотрит на кого созданы заявки (тикеты).
Если тикеты есть, нужные документ выгружаются и их подхватывает портал php.
Если тикетов нет, агент благополучно завершает работу.

Итого задержка при изменении документа (выставление оценки) будет не более 5 минут.
Мне кажется это почти соответствует понятию "сразу же".


Вариант второй - через БД.
У вас ведь php приложение скорее всего тянет данные из реляционной БД.
Можно сделать агент который будет загонять данные прямо в базу, например, через ODBC. Тогда все будет мгновенно.
 

lionk

Well-known member
05.04.2007
310
2
#5
а почемубы не зделать предстваление к коророму будет обращятся PHP через URL запрос.
представление построй как XML-фид, а на стороне сайта этот фид разбирайи и выводи.

никаких агентов и задержок
 
30.05.2006
1 345
11
#6
Есть ли у кого реально работающие примеры того
как с помощью пхп доставать данные из Лотуса
А какова цель?
Построить web-прикладуху и одновременно избавиться от сервера Домино? Не удастся (.nsf - базу никто за так не разберёт)
А если Домина остаётся, может пусть она сама раздаёт свои док-ты по http?
(Она ещё умеет по NRPC и по DIIOP)
 

yerke

Well-known member
28.08.2007
392
0
#7
А какова цель?
Построить web-прикладуху и одновременно избавиться от сервера Домино? Не удастся (.nsf - базу никто за так не разберёт)
А если Домина остаётся, может пусть она сама раздаёт свои док-ты по http?
(Она ещё умеет по NRPC и по DIIOP)
да эт класс что у домино есть собственный http сервер
я пользуюсь этой фичей (если можно так выражаться) в локальной сети
даже там сделал страничку который отображает эти же оценки (но конечно эт работает в интрасети)

но недавно наше руководство потребовала от нас
чтоб эту страничка отображалась и в нашеи интернет портале
который работает на апач серваке (пхп и мускул) в линухе

а лотус стоит у нас на винде и не открыт к глбальному сети
и не хочется его окрывать (дополнительные мучения же)

хотелось бы просто повесить страничку с актуальными оценками на уже готовы портал

как бы это грамотно сделать
 
K

K-Fire

#8
ИМХО, самый грамотный вариант уже отписали: пхп-страничка дергает XML-данные с сервера лотуса. Как лотус эти данные отдаст - агентом, веб-сервисом или вьюшкой - это не принципиально.
 
30.05.2006
1 345
11
#9
даже там сделал страничку который отображает эти же оценки (но конечно эт работает в интрасети)
Тогда м.б. скАнструлить скрипт, который "пробрасывает" запросы на Домину и транслирует ответы во внешний мир?
 

yerke

Well-known member
28.08.2007
392
0
#10
ИМХО, самый грамотный вариант уже отписали: пхп-страничка дергает XML-данные с сервера лотуса. Как лотус эти данные отдаст - агентом, веб-сервисом или вьюшкой - это не принципиально.
сделал с помощью вьюшки и ReadViewEntries
Код:
FROM DOMINO<br><br>

<form action="<? $_SERVER['PHP_SELF'] ?>" method="post">
Фамилия:	<input type="text"		name="SurName"	value="Абдиева" /><br><br>
ИКС:		<input type="password"	name="IKS"		value="080012" />
<input type="submit" value="OK" />
</form>
<?
$surname=$_REQUEST["SurName"];
$iks=$_REQUEST["IKS"];
$ss="http://192.168.64.9/db/bases/mybase.nsf/(FOR-PHP-IKS)?ReadViewEntries&ExpandView&RestrictToCategory=".$surname.$iks;
echo $ss."<br>";
//	
$xml=new DOMDocument();
$xml->load($ss);
//
$x=$xml->documentElement;
foreach($x->childNodes AS $item)
{
print $item->nodeName."=". $item->nodeValue ."<br/>";
}
?>
но возникли вопросы
1) ReadViewEntries возвращает не все ентри
которые расположены под категорией (RestrictToCategory)
хотя есть параметр ExpandView

2) и я достучался до базы используя аккаунт Anonymous как Reader
хотелось бы авторизоваться с помощью пхп используя определенный учет. запись домино
такое возможно? (ну как с пхп на мускул)
 

lionk

Well-known member
05.04.2007
310
2
#11
насчёт как достучатся до лотуса через авторизацию я не заню (это хелп по пхп читать нуно)
а насчёт вида рекомендую делать так
создаёш форму $$ViewTemplate for ViewName
в форме пишеш начальные и кончные XML теги, типо так:
<?xml version="1.0" encoding="windows-1251"?>
$$Viewbody - поле в котором будет тело вида

в виде формируеш конкретно дерево нодов

к виду обращяешся http://192.168.64.9/db/bases/mybase.nsf/имя вида?OpenView&RestrictToCategory=

у мнея 100% всё отдаёт и в том формате что нужно, + при помоще формы шаблона вида я могу в XML дерево добавлять не повторяющиеся статические ноды (типо айди сесии)
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 569
263
#12
кол-во выдаваемых строк - см. настройки сервера (в части веб) или сайта...
и типа &Count=5000 добавить (или число по-вкусу)
уже советовали CORBA (DIIOP) - кроссплатформенная штучка :D, правда интерфейс к пых-пыху надо искать

порылся в гугле...
м-да пых-пых явно недоделан для CORBA :blink:
но вот сцылки:
-по корба, общее - http://www.realcoding.net/article/view/163
-вот какие-то наработки - http://phporb.sourceforge.net/
 
A

ak-47

#13
Странно, почему никто не вспомнил про Web-services. Довольно все легко и просто, и данные будут в реальном времени.
Единственный недостаток, это большое потребление ресурсов лотусным веб-сервером. Поэтому при активной работе с веб-сервисами всему лотусу будет очень нелегко.
 
A

Alexander (Criz)

#14
Странно, почему никто не вспомнил про Web-services. Довольно все легко и просто, и данные будут в реальном времени.
Единственный недостаток, это большое потребление ресурсов лотусным веб-сервером. Поэтому при активной работе с веб-сервисами всему лотусу будет очень нелегко.
Как я понимаю разница между агентом и сервисом по производительности будет небольшой....
 
K

K-Fire

#15
Веб-сервис в лотусе по сути это и есть агент, если я правильно понимаю. Просто xml он выплевывает в одном из форматов веб-сервисных. Т.е. разницы по производительности не будет вообще, ну если не считать накладных расходов на формирование всяких там заголовков.