Upload
riley-darlington
View
225
Download
0
Embed Size (px)
Citation preview
KaufmanICT
Vitali Sh.Kaufman
Copyright 2011 © Vitali S. Kaufman
К следующему слайду – щелчком мыши, к обычному экрану – клавишей «Esc». См. также кнопки в левом нижнем углу экрана.
Vitali Sh. Kaufman: KaufmanICT2
Data on the author• http://www.kaufmanict.fi/vk • 2009 - KaufmanICT• 1999-now – 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: KaufmanICT 3
Directions of responsibility– Integration
– Web Services
– Translations
– Reporting
– Common code (Base classes)
– Code optimization & refinement
– Problem solving
– Foreign projects & standards
– Domestic projects
Vitali Sh. Kaufman: KaufmanICT 4
Roles
• Problem Solving
• Common style of programming improvement
• Common tool invention and maintenance
• Serving partner requests initialized by specific customer needs (normally, with refinement inclusive)
• Resposibility for specific projects
Vitali Sh. Kaufman: Integration & Mapping & WebService 5
Directions of improvement • Strategy
• web services
• Web services allow us to compete better to concentrate on selling our knowledge and skills in the best way.
• We could concentrate on high levels of abstraction presenting target field notions and operations based on our huge experience in the field, on existing databases, services and standards.
• We could avoid to spend our efforts on details of end user interface like artist web design, where we have no competition preferences.
• Integration API as the whole or partly to help to integrate our applications and DB-s by clients
Vitali Sh. Kaufman: Integration & Mapping & WebService 6
Directions of improvement • Tactics
• KaufmanICT involvement in early stages of discussions and decision making to improve
• Requirements of services and applications
• Architectural solution of services and applications
• Implementation structure
• Style of programming (modularity, levels of abstractions, refinement, customization, etc.)
• Mutual understanding in general (e.g. of technical options, real customer needs (e.g. an option to ask customers administrators to do something)
• Working style• avoiding of ad hoc solutions, harry preparations to demo, etc.
Vitali Sh. Kaufman: KaufmanICT 7
Integration (samples)• Inside F (appl & MS SSRS)
• Inside F (helpdesk & appl)
• Export (partner & F)
• Import & Export (many partners, UBL) (F & partner1 & partner2, etc.)
• Import from Russia (F & partner3)
• Import from Russia (F & partner4)
Vitali Sh. Kaufman: KaufmanICT 8
Common code (samples)• Dictionary.dll (appl1r & appl2 & appl3 & etc.)
• FI_RC (appl, FI_CP, reporting, dashboards, entity relations, mappings, etc.)
• FIT_Assembly (appl & web services & etc.)
• ParaDiaLog (web services)
• FI_XML_Exchange web_service (p1, p2, p3i)
• Base_MasterPage (appl & FI_CP)
• Secure_recall (appl1 & appl2 & appl3 & etc.)
Vitali Sh. Kaufman: KaufmanICT 9
Optimization (sample)• Base_MasterPage (appl & FI_CP)
• …
Vitali Sh. Kaufman: KaufmanICT 10
Reporting (samples)• Old reports (appl1 & appl2 & etc.)
• SSRS – Reporting services (appl & FI_CP)
Problem solving (sample)• Calendar translation (appl1 & appl2)
• Reporting services update
ProjectsDomestic projects
MEK_F_Service
Foreign projects & stadardsX-Change international project (Germany, France, Greece, etc.)
Vitali Sh. Kaufman: KaufmanICT 11
Integration (appl & MS SSRS)
• Requirements
• Clients of appl should use MS RS without settings redundant parameters
• Problem
• Passing appl parameters (cid, uid, kid, rid, ...)
• Solution
• Mapping (of parameters)
Vitali Sh. Kaufman: KaufmanICT 12
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: KaufmanICT 13
Integration (appl1 & appl2)
• Requirements
• Clients of appl1 should use appl2 without additional logins and settings parameters
• Problems
• Passing appl1 parameters (cid, uid, kid, rid, ...)
• Security
• Solutions
• Mapping (of cids)
• Secure-recall based on DB request
Vitali Sh. Kaufman: KaufmanICT 14
Integration (Mapping of cids)
<appl_cid_to_ helpdesk_cid>• <row appl_cid="111" helpdesk_cid="23" />• <row appl_cid="116" helpdesk_cid="23" />• <row appl_cid="114" helpdesk_cid="112" />• <row appl_cid="119" helpdesk_cid="112" />• <row appl_cid="130" helpdesk_cid="116" />• <row appl_cid="129" helpdesk_cid="116" />• <row appl_cid="131" helpdesk_cid="117" />• <row appl_cid="132" helpdesk_cid="117" />• <row appl_cid="107" helpdesk_cid="112" />• <row appl_cid="102" helpdesk_cid="100" />• </appl_cid_to_ helpdesk_cid>
Vitali Sh. Kaufman: KaufmanICT 15
Integration (Secure-recall )
Calling application like appl by Secure_recall :
session_id = FIT_Service_call.Put_Session_Authentication_Into_DB
(Convert.ToString(Session["UID"]));
Called application like helpdesk 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: KaufmanICT 16
Integration (client & F)
• Requirements
• Client site gets data from F DB seamless using F_Service web service.
• Problems
• Mutual understanding - F & A (a firm serving Client)
• Web service security
• Solutions
• Business level of abstraction for F DB.
• Mapping (DB fields Business logic abstractions)
Vitali Sh. Kaufman: KaufmanICT 17
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: KaufmanICT 18
Integration (web service security)
• Web server IP restrictions • Web service method credentials
(account, password)• Secure communication protocol (https).
Vitali Sh. Kaufman: KaufmanICT 19
Integration (F & 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: KaufmanICT 20
Integration (F & 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: KaufmanICT 21
Integration (F & Partner1 & Partner2. 3)
• Solutions
• Separation of business logic levels
• Import web service calls
• Business logic for local DB
• Export foreign web service calls
• Mappings (DB fields UBL)
• Flexible customization (!Parameters.xml & ParaDiaLog)
Vitali Sh. Kaufman: KaufmanICT 22
Integration (F & Partner¨1)
• Requirements
• Partner send data to F DB that should be seen by F helpdesk
• Problems
• Mutual understanding - F & Partner
• Web service security
• Solutions (FI_XML_Service)
• Business level of abstraction for F DB.
• Mapping (DB fields Business logic abstractions)
• Security by IP restrictions
Vitali Sh. Kaufman: KaufmanICT 23
Integration (F & Partner. 2)
• Business level of abstraction for F 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: KaufmanICT 24
Integration (F & 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: KaufmanICT 25
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: KaufmanICT 26
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: KaufmanICT 27
Integration problems• Mutual understanding between system
representatives
• Security restrictions
• Notions harmonization
• Notions mapping
• Business logic harmonization
• Mapping implementation
• Security providing
Vitali Sh. Kaufman: KaufmanICT
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: KaufmanICT 29
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: KaufmanICT 30
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: KaufmanICT 31
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: KaufmanIC 32
Integration as the whole
Partner
Partner
WWW Server
Web Service
XML
importinfo
info
export
XML
Database
Partner
integration components
Database server
Vitali Sh. Kaufman: Integration & Mapping & WebService 33
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
Questions, comments?
Copyright 2011 © Vitali S. Kaufman
Thank you!
http://www.kaufmanict.fi/vk