reflections on architecture

36
A candid discussion on developing software the right way

Upload: anantphenany9684

Post on 15-Feb-2016

225 views

Category:

Documents


0 download

DESCRIPTION

reflections on architecture

TRANSCRIPT

Page 1: Reflections on Architecture

������������� �������� �

������������� �������� ����������� ��

��� �������� �������������� � ��

������ ��� ������������ ������ ���

A candid discussion on developing software the right way

����������� ������������������������

����������������

Page 2: Reflections on Architecture

������������� �������� �

����������� �����

������ ��������������� �����������

� ��� � ���� ���������� ���� �� ��� ��

� !�"�� ���#�� �������������$%

� &��������� ������� ���'����������$(

� �����)�'��� ������ �������� ��*�+,-

� ��, �������������������� � ���� �������� ��*, ����������-

� ��� � ����� �����. ������� �������� ��*�� �$� -

� , �����������������������(� �����/������%�, ���

� #����/������$�������%

� )� ��0����#��������������0� ��� �������

Page 3: Reflections on Architecture

������������� �������� �

����������� �����

�'���������� ��� �

� �� ��� ������������ ������ ���1�#�2�*3"��(��#�-�

� 4556��������0� ��74428�9�����

� :51555������%���)� ��0���

� +�%�9����� 9���1��������������0� ��� ���

� #�������, �����1�&����#� �������� ����9������

� /�������������� ����� ���;���, ��� �%�<�/�����%���� �����������=2�2

� &� $���=2�2� ���������� ����>� ��'�������������>� ��'���=��� ���&������ ���

Page 4: Reflections on Architecture

������������� �������� �

��������������������

���� %������� ��$�����������'� �����

? &�$��$�(����'�%�;@�/.9.&�;@�/AA�;@�����? , ����(�)��� �����;@�#�� ������;@��$���? � �������� �(�, ����� ���;@�.'B����. ������;@��� �����. �����? �������(�, �� ���� %�;@�.������ ��? /������(�����������;@�/����C�� �� �;@�)�'�;@�� ��

Page 5: Reflections on Architecture

������������� �������� �

��������������������

�������� ���������0� �

����'���0�%����� �������������� ��������������D;����+�%

; ��� ���� ��; ����$ �0������������E��%; ����� ����%������������%;������$�%���; ��������������������������������� ���; ������������������0� ������������� ��������������������%

Page 6: Reflections on Architecture

������������� �������� �

��������������������

��������0� ��F����������,� ���E

9�����$�G�����%����0� ������������ �������������%��� �? ������� ���$����0� ����'������������������E��%

� ������������E������? 3������ %���$�0��0������'��������'��'����? 3������ %���$�0��0������'�����������'��'����

F�� ���2�, �������������$? /������ ���������%1�� ��������%H��'��������� �������0���$�? /��������%�������$����'�������� �������B��$���

Page 7: Reflections on Architecture

������������� �������� �

��������������������

�������� ���������0� ���$��� �$

; /���E����; .������ ��; .���� ��$

; ��������; ��������; ,���� �. �����; ������F ���; F���� �����; �� �����. �����

; ������; /����'� �������������������� ����; ���������; 9��$; )���

Page 8: Reflections on Architecture

������������� �������� �

��������������������

����0� ���$��� �$���45 I

; ������������ ������$ �0����'������$����������#�� �����0�%��E����; ������������ ��E�� ����������� ���� �������������'� �������������������� ����; &�0%� �� ���0�������%��� ������������������������; �������0� ����������������$������� ������ �����; 3�������/� �0����'��� ���� �$��

Page 9: Reflections on Architecture

������������� �������� �

����������� ��� ������� ���������������

>��� �� ������� �������� ��*� ��������� �-

; ��$�����������$%���%�� ������������������������������ �������� �; 3��0� �; F���'��; ������0� �; �4��1����

; � �������� ������ ������B������������� �����; �������$%��������� �������� �1�'����� �������� �������� ���������� �'��'�������������������������$���������� ����2

Page 10: Reflections on Architecture

������������� �������� �

����������� ��� ������� ���������������

� �������� � ��J��'������ ��

9���� ����E������� ����������$�'���� ���������������'��������������H�1������%1���� ������� ���������� ���%���

; #�� ������� �$������� ����$������������������� ����������; �����E��������; ������� ������ �����

Page 11: Reflections on Architecture

������������� �������� �

����������� ��� ������� ���������������

� �������� � ���������

; ��� �������� ��������$K���%���������� ������; �E�� ���������� K�����'���� ��������� ��$ �0����'� ; ��� ������%���������'��%������0���$���'�������0� ��� �������� �; ������������'��%������0���$�������;��� ������ %

Page 12: Reflections on Architecture

������������� �������� �

����������� ��� ������� ���������������

� �������� � ����� �

; ����'���� ��������0���� ���������������������� ���������������� ������; ���%���� ��������0����0� �; ���%����'������$��������0�%; ����� �������� �������� �����'�����'����������0���;�������� �������������������� ������

Page 13: Reflections on Architecture

������������� �������� �

����������� ��� ������� ���������������

� �������� � �������'�����$�����$%

; 3���G����������0������%��; �����%��� �������$� ���$�*��0� ����-; ��G�� ���������������$%���� ; &�0� ���������������������������

Page 14: Reflections on Architecture

������������� �������� �

���������� ������������

� �������0� ��<�.������ ��

Richard Stallman

Eric S. Raymond

Photos courtesy of Doc Searls

Page 15: Reflections on Architecture

������������� �������� �

����������������

#��, �������

� �� $�������%

� . '��H

� >� �H�

� �� ����&%��

� ��� �������

� 9���$

Page 16: Reflections on Architecture

������������� �������� �

����������������

� �������0� �

L� ������0� �M ��������� ������'� �%1����� ���2�"�����������������L� ��M ����L� ��������M �������L� ��� ���M

2 � ��������� ������� �$ ��1��� ��%��� ���

42 � ������������%���0������ �$ ���0� �����������������%�� ����

:2 � ��������� ���� �'������������%�����������%�� ���$�'�

62 � ������������ ��������� �$ ������ ������%�� ���� ����������������'����������0������������%�'�����2

Page 17: Reflections on Architecture

������������� �������� �

������������������� �����������

���������

� .�� ���$��%����*�� �%�!5-

� ������������� �� �*�����I5-

� ��� ���9��������*�� �%�4555-

� #��� %�>� �����������������*455NO-

Page 18: Reflections on Architecture

������������� �������� �

��������������������!���� ��� ��"������#�����

�����$�����������

� ��#������������������ ���� �� ������������

� $ ������ ��"��� ��� ����� ������������������

� %��� &���� ���� ���� ��� ���� �����$�������

� '��� ����� ������ ��� ������0�$������

)��� ������� �$�'���� �0�%������������$����0� ��'%����$������������$����� ������2��� ��$������0� ��0��

������������������(

Page 19: Reflections on Architecture

������������� �������� �

������������������� �����������

����������$��

� 3�;������ ���$ �����

� &����$������

� /���� �

� .���� ��$

� ��� ��������#9�

Page 20: Reflections on Architecture

������������� �������� �

���������$� �

9 ��������

Page 21: Reflections on Architecture

������������� �������� �

��������������������

�� �����. ������� �������� �Business Process Member Requests an Rx

Refill (Call Center IVR or Online)

Request Denied

Rx Dept Processes RefillPC Physician

Approves or Denies Request (WS or Email)

Member Informed that Refill is Ready

Validate Member is Authorized to Make Request

Determine Member’s Coverages and Primary Care Physician

Send Request Notification to pharmacy

Send Request Notification to Notes

Patient Records

Services

Member Informed that Request has been Denied

Request Approved

WS Enabled

Not WS Enabled

CreditVerification

Office Scheduling

Email System

Authorization ServiceEmail Service

Outpatient ServiceMasters Service

HR

- long running- one or more persons interacting- multiple valid business process states- alternative workflows for non-normal

conditions

- short term, non-interactive- one change of business state - consumes one or more enterprise service- targeted level of service reuse- loose coupling important- may require compensating transactions

- collaborations to implement a single Web Service

- collaborating apps encapsulated via Web Services

- Performance favored over loose coupling

Components

Page 22: Reflections on Architecture

������������� �������� �

���������(�������)��"� ��

��� ����

� 3����������������

� / �����������%� �*���������$-

� ����$������

� ��� �$�, ���

� ���� ���

Page 23: Reflections on Architecture

������������� �������� �

���������%��������!

���/#

CollectUser Data

Get Quote

Select Policy

Page 24: Reflections on Architecture

������������� �������� �

��������������������

�� �����. ������� �������� �

� ���.������������������������������� ����

� ��L� ����M �����������������������.�

� �� �����������������'����� ���

� �� �����, ����� ���$��� ���������

� �� ��������������(����1�9��1��E�����

� ����0���;��0���������)�'��� ����

ServiceRegistry

ServiceProvider

ServiceConsumer

Find Register

Bind,Execute

Page 25: Reflections on Architecture

������������� �������� �

��������� �����������

�.��/�� ���� ����

� ������ ��������� �����

� �� ��������'������ ����

� &����%�/������

� #�� ��� �'��

� /��'������������ �����0� �

� &�������� ��� ��

� �������$%��$����

� #�����'���%���,��%�� ����

� /�����'��

� ����� ��#� �������

Page 26: Reflections on Architecture

������������� �������� �

���������'���������

F� ���� ��

� L"����0�,�$�M ����0������%����'��� ����;� �����

� ����� ��H������ ��$�������*�������-�� ����������������� ����;� �����������%

Page 27: Reflections on Architecture

������������� �������� �

����������������!

>��� �'������

� ����� �

� P�&��� %����

� P�&���$��� �

� P�&�+�%����$����

� >��� �'������

� F���������� ����

� P�&��E�� �������%

� 9���� �.�� ���0

Page 28: Reflections on Architecture

������������� �������� �

����������������!

P�&��E�� �������%�������

QR�3�#�"������"�����L=�#M@

P�&�� ���� �'������ �������������(

S����(CC00020:2� $C��C��/;E��T������;��;�����U(

L)�����P�&�� ���� � ���$�H���� ��� ����������� �������%1��� �� ������������������������1������ ���� ��������������� ������������E�2�#����������%����E�� ��1��������� �����������������$�����������������P�&��������1������ ���� ���%1�'���������1����������������%J� ������������E�DM

Page 29: Reflections on Architecture

������������� �������� �

���������*����&��

, �'���������

� �%�������$�����

� &����%���

� 9����, ����

Page 30: Reflections on Architecture

������������� �������� �

���������*����&��

�%�������$����

� ����� �$

� ��� ��$

� ���� �$

� 9����$

� ���� ��$

Page 31: Reflections on Architecture

������������� �������� �

���������*����&��

&����%���

� � ��� �����

� >� ���$

� F�� ������

� , ������$

� ������%��� ���

Page 32: Reflections on Architecture

������������� �������� �

���������*����&��

9����, ����

� � ����������$����

� ���$��, �� ���H����

� 9�����������%������ �$

Page 33: Reflections on Architecture

������������� �������� �

���������% �����

� �����'�����.��������� �������$

� ���������������3.����$���%���� ��$������$�������������'������'%����$���� $��H����

� �%�� ��� �����������

� ����/������D

� .'B���22F������

� ���� ��������/����'� ����

� F������� ���QQ���$ ����@@

Page 34: Reflections on Architecture

������������� �������� �

���������% �����

�����������0�

Page 35: Reflections on Architecture

������������� �������� �

��������������������

/������

; /�� ����$������'�����$��G�����%�0� ��$����0� ������������������ ����0���� ���������������%����������; �����0����������������0������$�� ���$ ��������� ����%1���'�$���%��������1�0���������������������������$�� �������%1�� ������'����%���� ������'����%2; ��������0� ���$��� �0�������� �����������������������%; #������� �����$������� ����'����%���������������0� �

Page 36: Reflections on Architecture

������� �������$

������������� �������� �

����������� �&���

�������������� �� � ���

(� �

������� ��� � �!�"������