Agenda
Agenda
Agenda
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>Agenda</strong><br />
1. Introduction<br />
� Database Systems<br />
� XML, XSLT<br />
� Communication<br />
Model<br />
2. Lotus Notes<br />
� XML Support<br />
� Import/Export<br />
© P.Hennies & H.Nottelmann<br />
Web Service based<br />
Communication between<br />
Semi-structured and<br />
Relational Database Systems<br />
A Solution on the Example of<br />
PAVONE TimeTracking<br />
and Microsoft Project<br />
23/03/04<br />
3. .NET<br />
� ADO.NET<br />
� DataSets<br />
4. Web Services<br />
� Concept<br />
� Components<br />
� Client/Server<br />
5. Demonstration<br />
TTviaWS<br />
2
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus<br />
• Database Notes<br />
Systems<br />
•.NET • XML<br />
•Web • Schemas Service<br />
• XSLT<br />
• Com Model<br />
•Lotus Notes<br />
•.NET<br />
•Web Service<br />
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus<br />
• Database Notes<br />
Systems<br />
•.NET • XML<br />
•Web • Schemas Service<br />
• XSLT<br />
• Com Model<br />
•Lotus Notes<br />
•.NET<br />
•Web Service<br />
Database Systems<br />
� Relational (e.g MS SQL Server)<br />
�Underlying mathematical theory<br />
�Normalized relations<br />
�Widely deployed<br />
�Performant<br />
�Easy extensibility<br />
�Efficient handling of large data<br />
© P.Hennies & H.Nottelmann<br />
© P.Hennies & H.Nottelmann<br />
23/03/04<br />
Database Systems (Cont.)<br />
23/03/04<br />
TTviaWS<br />
3<br />
TTviaWS<br />
� Semi-structured (e.g. Lotus Notes)<br />
�Gain importance through emergence<br />
of XML for data exchange<br />
�Set of nodes, label graph structure<br />
�Manage heterogeneous data without<br />
an associated schema<br />
4
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus<br />
• Database<br />
Notes<br />
Systems<br />
•.NET • XML<br />
•Web • Schemas Service<br />
• XSLT<br />
• Com Model<br />
•Lotus Notes<br />
•.NET<br />
•Web Service<br />
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus<br />
• Database<br />
Notes<br />
Systems<br />
•.NET • XML<br />
•Web • Schemas<br />
Service<br />
• XSLT<br />
• Com Model<br />
•Lotus Notes<br />
•.NET<br />
•Web Service<br />
XML<br />
© P.Hennies & H.Nottelmann<br />
23/03/04<br />
TTviaWS<br />
� Describes (semi-)structured information<br />
� Meta Language without preconceived<br />
semantics<br />
� Semantics can be defined by<br />
applications or via stylesheets<br />
� Separates content from presentation<br />
� Self explanatory<br />
� Can embed existing data<br />
� Platform and language independent<br />
XML Schema<br />
� Defines the structure of all following<br />
documents<br />
� Written in XML<br />
� Simpler than DTD<br />
� Replaces DTD as most common<br />
used<br />
� Self-Validating<br />
© P.Hennies & H.Nottelmann<br />
23/03/04<br />
5<br />
TTviaWS<br />
6
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus<br />
• Database<br />
Notes<br />
Systems<br />
•.NET • XML<br />
•Web • Schemas Service<br />
• XSLT<br />
• Com Model<br />
•Lotus Notes<br />
•.NET<br />
•Web Service<br />
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus<br />
• Database<br />
Notes<br />
Systems<br />
•.NET • XML<br />
•Web • Schemas Service<br />
• XSLT<br />
• Com Model<br />
•Lotus Notes<br />
•.NET<br />
•Web Service<br />
Schema Datatyping<br />
© P.Hennies & H.Nottelmann<br />
23/03/04<br />
TTviaWS<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
XSL Transformations (XSLT)<br />
� Language to transform XML into other<br />
XML-based documents<br />
� XSLT Processor required<br />
� Template rules must “match” to be<br />
applied<br />
� XPath used to select doc. sections<br />
XML file<br />
XSL file<br />
© P.Hennies & H.Nottelmann<br />
XSLT-Processor New XML file<br />
23/03/04<br />
7<br />
TTviaWS<br />
8
LS<br />
DXL, XSLT<br />
DOM<br />
NSF<br />
Pavone<br />
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET •• XML<br />
Support<br />
•Web • DOM Service<br />
• DXL<br />
• XSLT<br />
• Import<br />
• Pipelines<br />
• Export<br />
•.NET<br />
•Web Service<br />
Communication Model<br />
XML<br />
Client<br />
© P.Hennies & H.Nottelmann<br />
© P.Hennies & H.Nottelmann<br />
Web Service<br />
DIME<br />
Soap<br />
XML<br />
23/03/04<br />
23/03/04<br />
Server<br />
XML<br />
TTviaWS<br />
Project<br />
SQL<br />
.NET<br />
C#, DataSet<br />
DataAdapter<br />
XML Support in Lotus Notes<br />
NotesDOMParser<br />
NotesDXLImporter<br />
NotesDXLExporter<br />
NotesSAXParser<br />
NotesXSL-<br />
Transformer<br />
Transforms XML into a<br />
(Document Object Model) tree<br />
structure.<br />
Uses Lotus Notes own DTD<br />
to define a Domino XML file<br />
Processes an XML file as a<br />
series of events<br />
Transforms XML data into<br />
differently structured XML by<br />
applying templates<br />
9<br />
TTviaWS<br />
10
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET • XML<br />
Support<br />
•Web • DOM<br />
Service<br />
• DXL<br />
• XSLT<br />
• Import<br />
• Pipelines<br />
• Export<br />
•.NET<br />
•Web Service<br />
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET • XML<br />
Support<br />
•Web • DOM Service<br />
• DXL<br />
• XSLT<br />
• Import<br />
• Pipelines<br />
• Export<br />
•.NET<br />
•Web Service<br />
Notes DOM Parser<br />
� Document Object Model to represent XML<br />
document structure<br />
� DOM-Tree structure allows access to<br />
object nodes<br />
� Notes DOM Tree Structure:<br />
NextSibling()<br />
© P.Hennies & H.Nottelmann<br />
© P.Hennies & H.Nottelmann<br />
NodeType<br />
Object node<br />
sibling sibling sibling<br />
23/03/04<br />
Attributes()<br />
Attributes<br />
Attributes Attributes Attributes<br />
Domino XML (DXL)<br />
� Importer and Exporter classes<br />
� User-defined NotesCollections allow<br />
selective exporting<br />
� A whole Notes Database can be<br />
represented in DXL<br />
NSF<br />
Notes Database<br />
NoteCollection<br />
DocumentCollection<br />
Notes Document<br />
23/03/04<br />
DXL<br />
representation of<br />
(partial) database<br />
TTviaWS<br />
11<br />
TTviaWS<br />
12
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET • XML<br />
Support<br />
•Web • DOM Service<br />
• DXL<br />
• XSLT<br />
• Import<br />
• Pipelines<br />
• Export<br />
•.NET<br />
•Web Service<br />
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET • XML<br />
Support<br />
•Web Service<br />
• DOM<br />
• DXL<br />
• XSLT<br />
• Import<br />
• Pipelines<br />
• Export<br />
•.NET<br />
•Web Service<br />
XSLT in Lotus Notes<br />
� Stylesheet Element, XML Output<br />
<br />
<br />
� Template rules<br />
<br />
<br />
<br />
<br />
© P.Hennies & H.Nottelmann<br />
© P.Hennies & H.Nottelmann<br />
23/03/04<br />
23/03/04<br />
Pattern, e.g. /, *, text(),<br />
node() or ancestor//node<br />
XSLT in Lotus Notes (Cont.)<br />
� Creating Elements with Attributes<br />
<br />
<br />
<br />
<br />
<br />
� Looping & Conditional Processing<br />
<br />
<br />
<br />
text<br />
<br />
<br />
<br />
TTviaWS<br />
13<br />
TTviaWS<br />
14
XML input<br />
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET • XML<br />
Support<br />
•Web • DOM Service<br />
• DXL<br />
• XSLT<br />
• Import<br />
• Pipelines<br />
• Export<br />
•.NET<br />
•Web Service<br />
Timesheet Import from XML<br />
XSL Transformer<br />
XSL Transformer<br />
DXL<br />
Stylesheet<br />
Dom Parser<br />
Stylesheet<br />
© P.Hennies & H.Nottelmann<br />
Pipelining<br />
© P.Hennies & H.Nottelmann<br />
DXL Importer<br />
Dom Parser<br />
Standardised<br />
LotusScript<br />
methods<br />
23/03/04<br />
23/03/04<br />
Pipeline #1<br />
Pipeline #2<br />
Preliminary<br />
Timesheet<br />
TTviaWS<br />
Final<br />
Timesheet<br />
15<br />
TTviaWS<br />
� Create Processing Elements in pipeline<br />
� Intermediary objects are not explicitly<br />
created<br />
Set transformer = session.CreateXSLTransformer (inputStream,<br />
Stylesheet)<br />
Set domParser=session.CreateDOMParser(transformer)<br />
transformer.Process<br />
The process call<br />
is only done<br />
for the first pipe object<br />
Using the XSLTransformer<br />
as Pipeline object<br />
makes it unnecessary<br />
to define an outout<br />
The XSLTransformer<br />
is specified as the<br />
DomParser output<br />
16
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET • XML<br />
Support<br />
•Web • DOM Service<br />
• DXL<br />
• XSLT<br />
• Import<br />
• Pipelines<br />
• Export<br />
•.NET<br />
•Web Service<br />
LS<br />
DXL, XSLT<br />
DOM<br />
NSF<br />
Pavone<br />
Timesheet Export to XML<br />
� Item values are stored in arrays<br />
� Conversion methods are deployed<br />
e.g. for tasks, datetime<br />
� Schema corresponding to MSP tables<br />
is written to XML file<br />
� Timesheet data is transposed<br />
� Separate entries for each array element<br />
� Aggregation of elements corresponding to<br />
MSP tables<br />
…and stored in the output file<br />
© P.Hennies & H.Nottelmann<br />
23/03/04<br />
Communication Model<br />
XML<br />
Client<br />
© P.Hennies & H.Nottelmann<br />
Web Service<br />
DIME<br />
Soap<br />
XML<br />
23/03/04<br />
Server<br />
XML<br />
TTviaWS<br />
17<br />
TTviaWS<br />
Project<br />
SQL<br />
.NET<br />
C#, DataSet<br />
DataAdapter<br />
18
Connection<br />
© P.Hennies & H.Nottelmann<br />
.NET Architecture<br />
VB.NET C# Perl Python VC++ …<br />
Web Services<br />
ASP.NET<br />
XML ADO.NET DataSets<br />
.NET Framework Class Library<br />
Common Language Runtime<br />
23/03/04<br />
UI<br />
Com+ Win 32<br />
IIS<br />
Data Providers<br />
© P.Hennies & H.Nottelmann<br />
ADO.NET<br />
ADO.NET Data Flow<br />
DataAdapter<br />
Command<br />
DataReader<br />
23/03/04<br />
DataSet<br />
Data Consumers<br />
Web Forms<br />
Web Service<br />
TTviaWS<br />
19<br />
TTviaWS<br />
20
Code Sample<br />
© P.Hennies & H.Nottelmann<br />
23/03/04<br />
TTviaWS<br />
baseConnection = new SqlConnection("server=(local);database=“Database” ;Trusted_Connection=yes");<br />
resourceAdapter0 = new SqlDataAdapter ("SELECT * FROM MSP_PROJECTS", updateConnection);<br />
resourceAdapter0.Fill(DataSet,”Tablename”);<br />
Select relevant Database<br />
Tables and write them into<br />
the DataSet.<br />
SqlCommand resourceAdapter0DeleteCmd = new SqlCommand("DELETE FROM MSP_PROJECTS<br />
WHERE PROJ_ID = @pPROJ_ID", resourceAdapter0.SelectCommand.Connection);<br />
resourceAdapter0DeleteCmd.Parameters.Add(new SqlParameter("@pPROJ_ID", SqlDbType.Int));<br />
resourceAdapter0DeleteCmd.Parameters["@pPROJ_ID"].SourceVersion = DataRowVersion.Default;<br />
resourceAdapter0DeleteCmd.Parameters["@pPROJ_ID"].SourceColumn = "PROJ_ID";<br />
resourceAdapter0.DeleteCommand = resourceAdapter0DeleteCmd;<br />
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET •.NET<br />
•Web<br />
• Framework<br />
Service<br />
• ADO.NET<br />
• DataSets<br />
•Web Service<br />
DataSets<br />
� Written in XML<br />
© P.Hennies & H.Nottelmann<br />
23/03/04<br />
Open Connection<br />
to target<br />
Database.<br />
Define Commands to Insert,<br />
Delete and Update Databasetables<br />
after work on the<br />
DataSet is finished.<br />
� Cache representation of Database<br />
� Support both (limited) relational<br />
operations as well as XML-based<br />
handling<br />
� Inlay-Schema defines Datatypes<br />
21<br />
TTviaWS<br />
22
© P.Hennies & H.Nottelmann<br />
DataSet Structure<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
TeconeProject<br />
<br />
<br />
<br />
LS<br />
DXL, XSLT<br />
DOM<br />
NSF<br />
Pavone<br />
23/03/04<br />
Communication Model<br />
XML<br />
Client<br />
© P.Hennies & H.Nottelmann<br />
Web Service<br />
DIME<br />
Soap<br />
XML<br />
23/03/04<br />
Server<br />
XML<br />
TTviaWS<br />
23<br />
TTviaWS<br />
Project<br />
SQL<br />
.NET<br />
C#, DataSet<br />
DataAdapter<br />
24
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET<br />
•Web Service<br />
•• Concept<br />
• Operations<br />
Sequence<br />
• Components<br />
• Attachments<br />
• Server Side<br />
• Lotus Client<br />
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET •.NET<br />
•Web Service<br />
•• Concept<br />
• Operations<br />
Sequence<br />
• Components<br />
• Attachments<br />
• Server Side<br />
• Lotus Client<br />
Web Services<br />
� Self-describing & modular<br />
� Provide access to remote objects<br />
� Open,Internet-oriented, standardbased<br />
Interfaces<br />
� Platform, language and OS<br />
independent<br />
© P.Hennies & H.Nottelmann<br />
© P.Hennies & H.Nottelmann<br />
23/03/04<br />
Web Services (Cont.)<br />
UDDI<br />
Service<br />
Requester<br />
Client<br />
Application<br />
Service<br />
Broker<br />
23/03/04<br />
SOAP<br />
UDDI<br />
Registry<br />
WSDL<br />
Service<br />
Provider<br />
Web<br />
Service<br />
TTviaWS<br />
25<br />
TTviaWS<br />
26
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET<br />
•Web Service<br />
• Concept<br />
• Operations<br />
Sequence<br />
• Components<br />
• Attachments<br />
• Server Side<br />
• Lotus Client<br />
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET •.NET<br />
•Web Service<br />
• Concept<br />
• Operations<br />
Sequence<br />
• Components<br />
• Attachments<br />
• Server Side<br />
• Lotus Client<br />
Operations Sequence<br />
1. Client<br />
� Supplies parameters and calls method<br />
� Formats call as SOAP message<br />
� Sends request via HTTP POST<br />
2. Server<br />
� Unwraps SOAP envelope<br />
� Runs method<br />
� Returns results as SOAP response<br />
3. Client<br />
� Unwraps response & reads results<br />
© P.Hennies & H.Nottelmann<br />
Components<br />
� SOAP<br />
© P.Hennies & H.Nottelmann<br />
23/03/04<br />
� Composed in XML<br />
� Distributed but deliberately simple<br />
� „Wraps“ request and response<br />
� Transfers via HTTP<br />
� WSDL<br />
� Public contact Interface<br />
� Service description in XML<br />
� Publishes methods, parameters and types<br />
23/03/04<br />
TTviaWS<br />
27<br />
TTviaWS<br />
28
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET<br />
•Web Service<br />
• Concept<br />
• Operations<br />
Sequence<br />
• Components<br />
• Attachments<br />
• Server Side<br />
• Lotus Client<br />
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET •.NET<br />
•Web Service<br />
• Concept<br />
• Operations<br />
Sequence<br />
• Components<br />
• Attachments<br />
• Server Side<br />
• Lotus Client<br />
SOAP Message Structure<br />
© P.Hennies & H.Nottelmann<br />
© P.Hennies & H.Nottelmann<br />
23/03/04<br />
23/03/04<br />
TTviaWS<br />
29<br />
TTviaWS<br />
WSDL Code Sample<br />
[Namespace Definitions]<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
30
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET<br />
•Web Service<br />
• Concept<br />
• Operations<br />
Sequence<br />
• Components<br />
• Attachments<br />
• Server Side<br />
• Lotus Client<br />
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET •.NET<br />
•Web Service<br />
• Concept<br />
• Operations<br />
Sequence<br />
• Components<br />
• Attachments<br />
• Server Side<br />
• Lotus Client<br />
Compound SOAP Structure<br />
© P.Hennies & H.Nottelmann<br />
23/03/04<br />
TTviaWS<br />
� Abstract concept for Attachments<br />
� A representation of a compound SOAP<br />
structure must describe:<br />
1. an encapsulation mechanism<br />
2. a mechanism for identifying all parts using<br />
URI (Unique Reference Identifier)<br />
3. interactions between the underlying<br />
transport protocol<br />
� Unique identification of primary SOAP<br />
message must be ensured<br />
Compound SOAP (Cont.)<br />
� Encapsulation implementations:<br />
�MIME developed for emailing<br />
© P.Hennies & H.Nottelmann<br />
� Simple but…<br />
� Heavyweight, and streaming impossible<br />
�DIME (what we used)<br />
� Developed by Microsoft & IBM<br />
� Much lighter than MIME<br />
� Encapsulates the SOAP envelope<br />
23/03/04<br />
31<br />
TTviaWS<br />
32
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET •.NET<br />
•Web Service<br />
• Concept<br />
• Operations<br />
Sequence<br />
• Components<br />
• Attachments<br />
• Server Side<br />
• Lotus Client<br />
Attached (binary)<br />
data<br />
© P.Hennies & H.Nottelmann<br />
© P.Hennies & H.Nottelmann<br />
DIME-Record<br />
23/03/04<br />
Identifier (URI)<br />
Type of payload<br />
Server Side Solution<br />
� Components<br />
�C# Web Service<br />
� Namespace<br />
� Class Library<br />
�„Web Config“<br />
� Web Interface settings<br />
� Many implementation details<br />
hidden<br />
�[WebMethod]<br />
23/03/04<br />
TTviaWS<br />
33<br />
TTviaWS<br />
34
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET<br />
•Web Service<br />
• Concept<br />
• Operations<br />
Sequence<br />
• Components<br />
• Attachments<br />
• Server Side<br />
• Lotus Client<br />
Server Side - Attachments<br />
� Web Service Extensions (WSE)<br />
Enable processing of DIME<br />
Attachments<br />
� SOAPContext<br />
Allows Attachment access<br />
independent of request message<br />
� SOAP Response<br />
Client can be informed of processing<br />
errors<br />
© P.Hennies & H.Nottelmann<br />
Code Sample<br />
[WebMethod]<br />
public string Insert()<br />
{<br />
23/03/04<br />
SoapContext myContext = HttpSoapContext.RequestContext;<br />
if (myContext.Attachments.Count >0)<br />
{<br />
SaveFile("temp.xml",myContext.Attachments[0].Stream);<br />
[….]<br />
DimeAttachment attachment = new DimeAttachment(„FileType",<br />
TypeFormatEnum.Unknown,<br />
Server.MapPath(@"\Tecone_Project\answer.xml"));<br />
HttpSoapContext.ResponseContext.Attachments.Add(attachment);<br />
return "answer.xml";<br />
[…]<br />
}<br />
© P.Hennies & H.Nottelmann<br />
Defines Method as<br />
Web accessible<br />
23/03/04<br />
Creates Attachment<br />
and adds it to the<br />
response context<br />
Gets the<br />
SOAP context<br />
and checks for<br />
available<br />
Attachments<br />
TTviaWS<br />
35<br />
TTviaWS<br />
Streams<br />
Attachment<br />
payload to<br />
SaveFile<br />
method<br />
36
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET<br />
•Web Service<br />
• Concept<br />
• Operations<br />
Sequence<br />
• Components<br />
• Attachments<br />
• Server Side<br />
• Lotus Client<br />
<strong>Agenda</strong><br />
•Introduction<br />
•Lotus Notes<br />
•.NET •.NET<br />
•Web Service<br />
• Concept<br />
• Operations<br />
Sequence<br />
• Components<br />
• Attachments<br />
• Server Side<br />
• Lotus Client<br />
Lotus Notes as a WS Client<br />
� Java classes (SOAP4J)<br />
� Java Agents or LotusScript calling Java<br />
(LS2J)<br />
� Superseded by Apache SOAP/Axis<br />
� SOAP Connect<br />
� Free LotusScript utility from Lotus<br />
� Java background classes<br />
� Lotus Script calling Microsoft Objects<br />
(Windows only)<br />
� MS SOAP Toolkit<br />
� .NET client objects<br />
© P.Hennies & H.Nottelmann<br />
© P.Hennies & H.Nottelmann<br />
23/03/04<br />
Lotus Notes as a WS (Cont.)<br />
23/03/04<br />
TTviaWS<br />
37<br />
TTviaWS<br />
� Consuming web service with COM<br />
Notes<br />
LS<br />
Agent<br />
SOAP COM API<br />
MS<br />
SOAP<br />
Toolkit<br />
HTTP<br />
WSDL<br />
Web<br />
Service<br />
38
Code Sample<br />
HTTP binding<br />
Holds<br />
attachment<br />
Compose<br />
DIME message<br />
LS<br />
DXL, XSLT<br />
DOM<br />
NSF<br />
Pavone<br />
EndPointURL = "http://131.234.76.190/Tecone_Project/Tecone.asmx"<br />
Set connector = CreateObject("MSSOAP.HttpConnector30")<br />
connector.Property("EndPointURL") = EndPointURL<br />
connector.Property("SoapAction") = "http://tempuri.org/Insert"<br />
connector.Connect<br />
Set FileAttach = CreateObject("MSSOAP.FileAttachment30")<br />
FileAttach.FileName = "C:\dxl\timesheet.xml"<br />
connector.BeginMessage<br />
Set composer = CreateObject("MSSOAP.DimeComposer30")<br />
Set Serializer = CreateObject("MSSOAP.SoapSerializer30")<br />
Serializer.InitWithComposer connector.InputStream, composer<br />
Serializer.StartEnvelope<br />
[...]<br />
Serializer.AddAttachment FileAttach<br />
[…]<br />
Serializer.Finished<br />
connector.EndMessage<br />
Sends request<br />
© P.Hennies & H.Nottelmann<br />
23/03/04<br />
Communication Model<br />
XML<br />
Client<br />
© P.Hennies & H.Nottelmann<br />
Web Service<br />
DIME<br />
Soap<br />
XML<br />
23/03/04<br />
Server<br />
XML<br />
TTviaWS<br />
Builds SOAP<br />
message<br />
Initializes the<br />
serializer with a<br />
composer capable of<br />
including attachments<br />
39<br />
TTviaWS<br />
Project<br />
SQL<br />
.NET<br />
C#, DataSet<br />
DataAdapter<br />
40
© P.Hennies & H.Nottelmann<br />
Questions?<br />
23/03/04<br />
Thank you<br />
for your Attention!<br />
© P.Hennies & H.Nottelmann<br />
23/03/04<br />
TTviaWS<br />
41<br />
TTviaWS<br />
42