Upload
juliana-figge
View
213
Download
0
Embed Size (px)
Citation preview
Integration & Mapping & WebService (KaufmanICT Information Technology - KIT)
Vitali Sh.Kaufman
Copyright 2010 © Vitali S. Kaufman
К следующему слайду – щелчком мыши, к обычному экрану – клавишей «Esc». См. также кнопки в левом нижнем углу экрана.
Vitali Sh. Kaufman: Integration & Mapping & WebService 2
Data on the author• http://www.kolumbus.fi/vitali.kaufman/• 2009 - KaufmanICT• 1999- 2009 – Fatman OY, Chief Software Specialist• 1991-1993 - Full Professor of Computer Science Department of the
Moscow State University, Moscow, the diploma of Doctor of Sciences was confirmed in Finland
• 1990-1994 - Chairman of the Ada Working Group in the Russian National Body of the International Standard Organization (ISO-IEC/JTC1/SC-22 - Programming Languages)), Ada 9X Distinguished Reviewer, member of ACM, SIGPLAN, SIGADA
• 1970-1993 - Scientific supervisor of 11 Ph.D on Computer Sciences• 1965-1966 - Teacher of mathematics of Moscow State University
College No.18 for Physics and Mathematics (Kolmogorov's School for extremely talented children)
• BOOKS: • Programming languages: concepts and principles. Moscow :Radio i
svyas, 1993, 432 pp. (in Russian). Republished Moscow : DMK-Press, 2010 in “Classics of programming” series.
• 1970-1986 - Organized and edited translations into Russian of 6 English books in software engineering.
Vitali Sh. Kaufman: Integration & Mapping & WebService 3
Agenda • Introduction: samples
• Integration
• Mapping
• Web Service
• How they work together
• Conclusion
Vitali Sh. Kaufman: Integration & Mapping & WebService 4
Integration (samples)• Inside Firm (app & MS SSRS)
• Inside Firm (hpdesk & ecenter)
• Export (Merimieskassa & Firm)
• Import & Export (many partners, UBL) (Firm & Senaatti & Randh, etc.)
• Import from Russia (Firm & InSystem)
• Import from Russia (Firm & EKE)
Vitali Sh. Kaufman: Integration & Mapping & WebService 5
Integration (appl & MS SSRS)
• Requirements
• Clients of ecenter should use MS RS without settings redundant parameters
• Problem
• Passing appl parameters (cid, uid, kid, rid, ...)
• Solution
• Mapping (of parameters)
Vitali Sh. Kaufman: Integration & Mapping & WebService 6
Integration (report parameters)
<report_parameter2session_table_column2session_variable>• <row report_parameter="User_Group" column="cid" session_var="cidi" />• <row report_parameter="DB_Server" column="database_server_name"
session_var="" />• <row report_parameter="DB" column="database_name" session_var="" />• <row report_parameter="Logo" column="logo_string" session_var="" />
<row report_parameter="Facility_Id" column="kid" session_var="kid" /> • <row report_parameter="Building_Id" column="rid" session_var="rid" > </row>• <row report_parameter="Flat_Type" column="apartment_type"
session_var="" />• <row report_parameter="Lease_Id" column="vsid" session_var="vsid" />• <row report_parameter="Start_Date" column="start_date_default"
session_var="" />• <row report_parameter="End_Date" column="end_date_default" session_var=""
/>• </report_parameter2session_table_column2session_variable>
Vitali Sh. Kaufman: Integration & Mapping & WebService 7
Integration (app1 & app2)
• Requirements
• Clients of app should use it without additional logins and settings parameters
• Problems
• Passing app parameters (cid, uid, kid, rid, ...)
• Security
• Solutions
• Mapping (of cids)
• Secure-recall based on DB request
Vitali Sh. Kaufman: Integration & Mapping & WebService 8
Integration (Mapping of cids)
<app1_cid_to_ app2_cid>• <row ecenter_cid="111" helpdesk_cid="23" /><!-- Finnair -->• <row ecenter_cid="116" helpdesk_cid="23" /><!-- Finnair -->• <row ecenter_cid="114" helpdesk_cid="112" /><!-- Metsäliitto -->• <row ecenter_cid="119" helpdesk_cid="112" /><!-- Metsäliitto -->• <row ecenter_cid="130" helpdesk_cid="116" /><!-- In_System -->• <row ecenter_cid="129" helpdesk_cid="116" /><!-- In_System -->• <row ecenter_cid="131" helpdesk_cid="117" /><!-- In_System -->• <row ecenter_cid="132" helpdesk_cid="117" /><!-- In_System -->• <row ecenter_cid="107" helpdesk_cid="112" /><!-- SVEA / RANDH --
>• <row ecenter_cid="102" helpdesk_cid="100" /><!-- test -->• </ecenter_cid_to_ helpdesk_cid>
Vitali Sh. Kaufman: Integration & Mapping & WebService 9
Integration (Secure-recall )
Calling application like app1 by Secure_recall :
session_id = FIT_Service_call.Put_Session_Authentication_Into_DB
(Convert.ToString(Session["UID"]));
Called application like app2 has to get the session data from caller:
if ((session_id =Request.QueryString["session_id"]) != null)
session = (FIT_Service_call.Get_Session(session_id)).Session;
Get_Session removes all the session data from Intranet DB.
Vitali Sh. Kaufman: Integration & Mapping & WebService 10
Integration (Partner & Firm)
• Requirements
• Partner site gets data from Firm DB seamless using Firm_Service web service.
• Problems
• Mutual understanding
• Web service security
• Solutions
• Business level of abstraction for Firm DB.
• Mapping (DB fields Business logic abstractions)
Vitali Sh. Kaufman: Integration & Mapping & WebService 11
Integration (Business level)
• Abstractions should use no database specific notions, just business specifics.
• Abstractions should use no programming language specific notions, just business specifics.
• Abstractions should use standard (like UBL, UFC, EHYT) notions and naming as close as possible.
Vitali Sh. Kaufman: Integration & Mapping & WebService 12
Integration (web service security)
• Web server IP restrictions • Web service method credentials
(account, password)• Secure communication protocol (https).
Vitali Sh. Kaufman: Integration & Mapping & WebService 13
Integration (Firm & Partner1 & Partner2, etc. 1)
• Requirements
• Business logic of every partner web service should fit the same rules
• Complex type (like OrderType) web method parameters that should fit Universal Business language (UBL) standard XML schemas
• The same web methods of every partner web service
• handleOrderMessage
• handleStatusMessage
• Security
Vitali Sh. Kaufman: Integration & Mapping & WebService 14
Integration (Firm & Partner1 & Partner2, 2)
• Problems
• Mutual understanding – many partners
• Several platforms (Unix, Windows)
• Several web service technologies (ASMX, WCF)
• Several foreign web service calls (by proxy for now)
• Web service security certificate management
• Remote production web server(ISS)
• Maintenance (new partner addition, etc.)
Vitali Sh. Kaufman: Integration & Mapping & WebService 15
Integration (Firm & Partner1 & Partner2, 3)
• Solutions
• Separation of business logic levels
• Import web service calls (Vitali: UBLService)
• Business logic for local DB (Stefan: windows service)
• Export foreign web service calls (Vitali: UBLService_private)
• Mappings (DB fields UBL)
• Flexible customization (!Parameters.xml & ParaDiaLog)
Vitali Sh. Kaufman: Integration & Mapping & WebService 16
Integration (Firm & Partner. 1)
• Requirements
• Partner send data to Firm DB that should be seen by Firm helpdesk
• Problems
• Mutual understanding - Firm & Partner)
• Web service security
• Solutions (FI_XML_Service)
• Business level of abstraction for Firm DB.
• Mapping (DB fields Business logic abstractions)
• Security by IP restrictions
Vitali Sh. Kaufman: Integration & Mapping & WebService 17
Integration (Firm & Partner. 2)
• Business level of abstraction for Firm DB.
• Mapping (DB fields Business logic abstractions)switch (MeasurementType)
{case "Water":
MeasurementType_translated = "Vesi";
MeasurementUnit = "m3"; break;
case "Gas":
MeasurementType_translated = "Kaasu"; MeasurementUnit = "m3"; break;
case "Heat":
MeasurementType_translated = "Lämpö";
MeasurementUnit = "kWh"; break;
case "Electricity":
MeasurementType_translated = "Sähkö"; MeasurementUnit = "kWh"; break; }
Vitali Sh. Kaufman: Integration & Mapping & WebService 18
Integration (Firm & Partner, 3)
"INSERT INTO [dbo].[kiintml] ("
+ "[KID]"
+ ",[Vuosi]"
+ ",[Kuukausi_id]"
+",[Tarkenne]"
+ ",[Mittarinnumero]" //VK ",[SensorID]"
+ ",[Kulutus]" //VK ",[MeasurementValue]"
+ ",[InsertedDate] " //VK TimeStamp
• Security by IP restrictions
Vitali Sh. Kaufman: Integration & Mapping & WebService 19
Integration (main ideas)• Common requirements exist
• Common problems exist
• Common solutions exist
• KaufmanICT & ICT_Web_Service_Master
• Provide the solutions
• Solving the problems
Vitali Sh. Kaufman: Integration & Mapping & WebService 20
Integration requirements
• Preserving functionality (possibly restricted) of every integrating system
• Preserving security of every integrating system and the integrated system as the whole
• Maintenance overheads should be acceptable
• Performance overheads should be acceptable
• Integration efforts should be acceptable
• Effort distribution between partners should fit their competence
Vitali Sh. Kaufman: Integration & Mapping & WebService 21
Integration problems• Mutual understanding between system
representatives
• Security restrictions
• Notions harmonization
• Notions mapping
• Business logic harmonization
• Mapping implementation
• Security providing
Vitali Sh. Kaufman: Integration & Mapping & WebService 22
Integration solutions• 7 key words
• Functionality (3 words)• Mapping
• Standard
• Service
• Requirements (4 words)• Simplicity (nothing redundant)
• Clarity (nothing vague)
• Security (nothing unprotected)
• Robustness (nothing weak)
•
Vitali Sh. Kaufman: Integration & Mapping & WebService 23
Integration kinds • System Integration (a team of developers; goal: a system from modules)
• Enterprise Information Integration (a single owner of the
systems & information; goal: a single system for end user)
• Cross enterprise integration (different owners of systems &
information; goal: a single system for end user)
• Cross enterprise selected information harmonization - data synchronization (our case; goal: selected information should be the same in different enterprise data storages)
• Legacy integration (old platforms & old data formats; goal: make it working
since no way to rebuild)
• Samples
Vitali Sh. Kaufman: Integration & Mapping & WebService 24
Integration tools • Requirements
• Cross-platform
• Cross-language
• Cross-standard
• No developer environment
• No specific qualification
• Problems
• How to make money
• Solutions (the same 7 key words)
• ICT web service master
Vitali Sh. Kaufman: Integration & Mapping & WebService 25
Mapping tools • XML-based (considered above)
• VK_Grid-based (should be considered below)
• VK_Grid calculation fields as a key point of the tool convenience
Vitali Sh. Kaufman: Integration & Mapping & WebService 26
Whom and what for is it?• System integrators• Enterprise integrators • Cross e enterprise integrators• Legacy integrators• Firms and even states (e.g. for legacy
system integration)
Vitali Sh. Kaufman: Integration & Mapping & WebService 27
Integration as the whole
Partner
Partner
WWW Server
Web Service
XML
importinfo
info
export
XML
Database
Partner
integration components
Database server
Questions, comments?
Copyright 2010-2014 © Vitali S. Kaufman
Thank you!
http://vicita/vk-en