34
KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей «Esc». См. также кнопки в левом нижнем углу экрана.

KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

Embed Size (px)

Citation preview

Page 1: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

KaufmanICT

Vitali Sh.Kaufman

Copyright 2011 © Vitali S. Kaufman

К следующему слайду – щелчком мыши, к обычному экрану – клавишей «Esc». См. также кнопки в левом нижнем углу экрана.

Page 2: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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.

Page 3: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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

Page 4: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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

Page 5: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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

Page 6: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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.

Page 7: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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)

Page 8: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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.)

Page 9: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

Vitali Sh. Kaufman: KaufmanICT 9

Optimization (sample)• Base_MasterPage (appl & FI_CP)

• …

Page 10: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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.)

Page 11: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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)

Page 12: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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>

Page 13: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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

Page 14: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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>

Page 15: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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.

Page 16: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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)

Page 17: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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.

Page 18: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

Vitali Sh. Kaufman: KaufmanICT 18

Integration (web service security)

• Web server IP restrictions • Web service method credentials

(account, password)• Secure communication protocol (https).

Page 19: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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

Page 20: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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.)

Page 21: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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)

Page 22: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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

Page 23: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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; }

Page 24: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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

Page 25: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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

Page 26: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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

Page 27: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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

Page 28: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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)

Page 29: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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

Page 30: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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

Page 31: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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)

Page 32: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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

Page 33: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

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

Page 34: KaufmanICT Vitali Sh.Kaufman Copyright 2011 © Vitali S. Kaufman К следующему слайду – щелчком мыши, к обычному экрану – клавишей

Questions, comments?

Copyright 2011 © Vitali S. Kaufman

Thank you!

http://www.kaufmanict.fi/vk

[email protected]