Systems of Electronic Commerce
Prof. Jukka HeikkiläInformation systems, eBusiness
Dept. of CS & ISFaculty of Information Technology
University of Jyväskylä
tel:+358 50 581 8361email: [email protected]
1
Components
• A component ”represents a modular part of a system, that encapsulates its content and whose manifestation is replaceable within its environment. A component defines its behavior in terms of provided and required interfaces", (OMG, 2008)
2
2
Component based software
• Software components: – collections of objects, in binary or textual form,
with an interface– Roots in object oriented programming and
object oriented design– Some key issues:
•Abstraction •Encapsulation• Inheritance (is-a, part-of)• Invocation
3
3
More: http://koti.phnet.fi/mathie/Lintulauta/Matti Hietanen, 2005
Suorakanava, 2009
AbiSilvester, 2008
Forestum Oy, 2008
4
Component-based design
4
5
Software component types (based on Häkkinen & Peltola, 1998)
– Tailor-made: Developed for specific purpose in specific environment
– Product component (COTS, OTS, black-box): has been developed with a standard interface, and is re-usable developer oriented component.
» Add-on component (also plug-in) is a complementary, end-user oriented component
» Adaptive component is adaptable for various pre-specified uses and environments (e.g., adapters)
– Service component: standard interface for service definition and requesting
ApplicationService
Provision
On-demand, SaaS
5
6
Some history: HP e-speak (HP, 2000)
• A Network of Distributed processes: service repository & e-speak engines– Can be used as a search facility and to launch processes
• search by attributes or by named services
– Follow-up: access control & trusted services• Open
– Distributed processes can be added to the need– Bundling individual services
• Capacity considerations– distributed registration of services/processes (e.g., LDAP
-> UDDI)
6
7
E-speak flow
7
8
E-speak• client library
– naming + attributes
• J-ESI – Java E-speak Service
Interface (=API)• ABI
– Application Binary Interface (=internal)
• resource handler– Java code utilizing
the resource/service
8
9
Distributed systems architecture• Distribution models
– Mirror sites– Replicated data – Distributed data– Distributed processing– Co-operative processes
• Logically centralized but physically distributed
• Next step - completely distributed systems
9
10
Present distributed computing environment (BEA, 2006)
10
11
Present… cntd(Voormann, H., c.f. from Wikipedia)
WSDL Web Services Description Language (W3C)
SOAP Simple Object Access Protocol (WSs msg format description, W3C)
UDDI Universal Description Discovery and Integration (XML-registry, OASIS)
11
!"#$%&'()''*+&',-.+/-0'102&%3%"4&'5%.+"2&.2$%&'!%-/&67%8)
95*5
!"#$
%&"'()*+
*+&',-.+/-0
!%-/&67%8!:;<*=>;
,-.
%/0-12**+
;1*?>@A
!"202
%3-1#$'-(+
B1>BC1
!"-
%/2-452+
*=D1
!"2(
%&'62+
D>*=E5*=>;
!"7
%8-$'9#$'-(+
91*5=C19
@1B@1F1;*5*=>;F
!"#$%&'%(&)$*+$,
:;<=>-($0#1$-0
FGF*1D'D>91C
!-&./012,
?2*')(20
*1<H;>C>IG
D>91C
!3456/012,
@;'5A20
J:F=;1FF'D>91C
!(&)0*7$#12,
B.(20
!:;<*=>;=;I
1;*1@B@=F1
C"42'7K'2+"0#4
"/37%2-02'27'2+&
L$4"0&44
!"#$#%&'&()*++&,-
./+$"0++$"2
C"42'7K'3%7.&44&4'2+&
L$4"0&44'3&%K7%/4
3/"4#$,"&'&()*++&,-
./+$"0++&56,40++
C"42'7K'C7.-2"704'"0
6+".+'2+&'L$4"0&44
73&%-2&4
7,#0&'&8*9,6&./+$"0++
),4*#$,"
C"42'7K'>%#-0"M-2"704
=/37%2-02'27'2+&
J$4"0&44
:0,5)0&'&8*9,6
,62*"$;*#$,"+
C"42'7K'1N&024
F"#0"K".-02'27'2+&
J$4"0&44
<$=0&'&8*9,6&./+$"0++
0>0"#
C"42'7K'J$4"0&44
I7-O4PF2%-2&#"&4
!"?+@80*"+&'&8*9,6
./+A&2,*)@(6$#$4*)
+/440++&-*4#,6
F&/-02".'D7Q&O
!"#&'&B/+$"0++&0"#$#%
C0$"&'&B/+$"0++60)*#$,"+1$5
?7%8'!O76'D7Q&O
:0,5)0&'&D62*"$;*#$,"
/"$#E,6F&'&E,6F&56,?/4#
D-42&%'F.+&Q$O&
<$=0&'&B/+$"0++
0>0"#(%4)0&'&B/+$"0++
4%4)0
J$4"0&44'BO-0
!"?&'&B/+$"0++
,.904#$>080*"+&'&B/+$"0++
+#6*#02%
H$/-0'=02&%K-.&
5%.+"2&.2$%&
:0,5)0&'&C,)0
E,6F&'&G0)$>06*.)0
B%7.&44"0#'F2%$.2$%&
<$=0&'&H%+#0=&0>0"#
(%4)0&'&:6,40++$"2
4%4)0
J$4"0&44'@$O&'D7Q&O
!"?&'&H#6/4#/6*)
*++06#$,"
80*"+&'&I4#$,"
*++06#$,"
FR42&/'9&4"#0
:6,4&'&(,=5/#06
-/"4#$,"
J@D&'&G*#*&0)0=0"#+@
+0#+
B%&4&02-2"70
5%.+"2&.2$%&
:0,5)0&'&K+06
E,6F&'&H4600"&-,6=*#
<702%7O'F2%$.2$%&
<$=0&'&!L04/#0
(%4)0&'&(,=5,"0"#
4%4)0
@$O&'9&4"#0
!"?&'&(,"?$#$,"
80*"+&'&I4#$,"
B%7#%-/
:6,4&'&M*"2/*20
+#*#0=0"#
J@D&'&(,"#6,)&.),4F
F&.$%"2R'5%.+"2&.2$%&
:0,5)0&'&J?0"#$#%
E,6F&'&N,.
*"/"0#'9&K"0"2"70
<$=0&'&J"#066/5#
(%4)0&'&8*41$"0&4%4)0
@$O&'F3&."K".-2"70
!"?&'&H/.O4,"?$#$,"
80*"+&'&H#05
5.2$-O'533O".-2"70
<7Q&
5.2$-O'J$4"0&44
>%#-0"M-2"70
5.$2-O'J$4"0&44
F.+&Q$O&
5.2$-O'J$4"0&44
F2%-2&#R
J$4"0&44'B%7.&44
D7Q&O
:6,4&'&B/+$"0++
56,40++J@D&'&B/+$"0++
60+,/640+
533O".-2"70
5%.+"2&.2$%&
:6,4&'&I55)$4*#$,"
-/"4#$,"
J@D&'&K+06&>$0P+
C7#".-O'9-2-'D7Q&O
!"#&'&G*#*&0"#$#%
C0$"&'&G*#*
60)*#$,"+1$5
B+R4".-O'9-2-'D7Q&O
!"#&'&H02=0"#@<*.)0Q
0#4A
C0$"&'&:,$"#06@R0%
9-2-'9&K"0"2"70
!"#&'&3$)0?
C0$"&'&I??60++
5.2$-O'J$4"0&44'9-2- 5.2$-O'B+R4".-O
;&267%84
;&267%8'5%.+"2&.2$%&
7,?0&'&I??60++0+
M$"F&'&:6,#,4,)+
*&.+07O7#R
5%.+"2&.2$%&
7,?0&'&S*6?P*60@
H%+#0=&+,-#P*60
M$"F&'&M$"0
+504$-$4*#$,"+
9"42%"L$2&Q'FR42&/
5%.+"2&.2$%&
7,?0&'&J@H&-/"4#$,"
T:6,40++,6Q&H#,6*20Q&0#4AU
M$"F&'&M$"0
41*6*4#06$+#$4+
J$4"0&44'C7#"42".4
FR42&/
7,?0&'&B/+$"0++
),4*#$,"M$"F&'&B/+$"0++
)$"F*20
F<>B1
!(&)$*+$#12,
/5#((20
5L42%-.2"704'S<7O$/04T
B&%43&.2"N&4'S@764T
12
Application frameworks & component models
Software architectures
Modules,components
Patterns, services
12
13
How to bridge the gaps between layers between?
• Front-End of the webstore– For the top row: you should do business modelling– For the 2nd & 3rd row architecting and narrating
the user experience• Back-End of the webstore
– patterns to make it flexible and ‘agile’– processes & coreography from the narratives/
storyline– components, scripts, RPCs
13
14
Design Patterns (adopted from Gamma et al., 1995)
• Generic descriptions or templates of solutions to context specific problems– It is described in:
• The goal and reason description in the form of intent• Motivation, describing scenarios/use cases in which to
use the pattern by combining problems and contexts• Graphical representation (typically class or interaction
diagrams), i.e. structure, participants, collaboration• Implementation, Sample Code• Known uses and related patterns
• Algorithms solve computational problems, patterns design problems
14
15
Design patterns (IBM, 2004)
• Business patterns identify the interaction between users, businesses, and data. Business patterns are used to create simple, end-to-end e-business applications.
• Integration patterns connect other Business patterns together to create applications with advanced functionality. Integration patterns are used to combine Business patterns in advanced e-business applications.
• Composite patterns are combinations of Business patterns and Integration patterns that have themselves become commonly used types of e-business applications. Composite patterns are advanced e-business applications.
• Custom designs are similar to Composite patterns, as they combine Business patterns and Integration patterns to form an advanced, end-to-end solution. These solutions, however, have not been implemented to the extent of Composite patterns, but are instead developed to solve the e-business problems of one specific company, or perhaps several enterprises with similar problems.
• Application and Runtime patterns are driven by the customer's requirements and describe the shape of applications and the supporting runtime needed to build the e-business application.
• Product mappings to populate the solution. The product mappings are based on proven implementations.
15
16
Patternsprocess
(IBM, 2004)
16
• http://developer.yahoo.com/ypatterns/selection/calendar.html
17
17
18
Jups’s opinion on patterns
• Patterns are computer practice, not science
• The patterns are helpful and proven model conceptualizations of solutions on specific problem domains,
• Patterns have to be backed up by rigorous and tested components/algorithms and with careful analysis and abstraction of the problem domain.
18
19
Do we need the intermediate design stage?
• Why not just XP or RAD in an Agile way?– One-of-a-kind project or multiple similar products/
projects?– Ready made, tested templates and components– Multiple interconnections
• Technical conformity– ICT stds etc
• Functional conformity– I/O, sequence of processes, delays/lead times
• Procedural conformity– Quality stds and procedures, information sharing
and disclosure
– Abstraction
19
20
Architecture functions (Youngs et al., 1999)
• “Breaking down the complexity of the IT system so that developers can analyze and design components that are relatively isolated from one another
• Analyzing the functionality so that required technical components (or infrastructure) can be identified
• Assisting in the analysis of service-level requirements so that the means of delivering them can be designed
• Providing a basis for the specification of the physical computer systems on which the IT system will execute and the mapping of components onto these computer systems”
20
21
With WSDL/BPEL we are here… (adapted using Jonkers et al., 2004 framework on )
21
22
Some background to the need for service architectures
• So far we have been discussing processes OO in the context of one computer
• What if the computer’s are many?– RPC Remote Procedure Calls (coupled, early
binding)– RMI Remote Method Invocation (loosely-
coupled, late binding)
• So, how to handle the calls and invocations– Lintulaudanvieras status report from multiple
lintulautas
22