面向服务的计算期中复习笔记

这门课程所使用的教材是 Jia Zhang 老师自己编写的 Services Computing,课程内容其实相对老旧,不过我之前没有 Java 方面的经验,这门课还是让我学到了很多。

Week 1

  1. Generations of SE:
    • 1st generation: Waterfall model, structured design & analysis, compilers, OS, programming languages;
    • 2nd generation: OO design & analysis, modeling;
    • 3rd generation: SOC platform.
  2. Service operation models:
    • Hosted service model;
    • Business process outsourcing;
    • Data-centered outsourcing;
    • Services through online broker agency.
  3. Service charge models:
    • Free-of-charge model;
    • Fee-based model;
    • Government service model.
  4. Service Level Agreement (SLA): Higher fee for higher quality of service. Support large user base and usage scenarios.
  5. Service lifecycle:
    • Strategic planning & consulting;
    • Service engagement;
    • Service delivery;
    • Service operation;
    • Service billing;
    • Service management.
  6. Clarifications:
    • SOC is the umbrella, a discipline;
    • SOA is the architectural model (overall software system design);
    • Web service is the best enabling technology (to date).
  7. Others:
    • IT-enabled service: Outsourcing of processes that can be enabled with information technology and covers diverse areas; Relationship between providers and consumers;
    • Differences between business services and IT services: One is about business logics, the other can support multiple scenarios;
    • Relationship between IT & non-IT services in a service ecosystem: Horizontal vs. vertical;
    • Describe a typical service system: Inputs, outputs, goals, transformation, components, sensors.

Week 2

  1. XML:
    • One of the most important difference between XML and HTML is that XML is content-oriented while HTML is presentation-oriented;
    • XML is case-sensitive;
    • <![CDATA[<tag>Here goes the comment</tag>]]>;
    • Each document must have a unique first element – the root node.
  2. DTD:
    • DTD serves as grammar for the underlying XML document, and it is part of XML language;
    • Example of DTD (PPT 3, Page 25);
    • DTD can be both inside XML file or outside XML file.
  3. XML Schema:
    • Grammar for specifying valid XML documents, uses XML as well;
    • Example of XML Schema (PPT 3, Page 28);
    • DTD can only check the grammar of XML, while XML Schema can check if it’s both well-formed and valid:
      • DTD is not XML and terse;
      • XML Schema is XML and verbose and powerful (extensible to additions, data types, namespaces).
  4. XML parsing:
    • DOM: Load whole XML into memory, fast;
    • SAX: Is better for large XML file, less memory.
  5. XPath is used to navigate through elements and attributes in an XML document. Example on (PPT 3, Page 52).
  6. XQuery is like the SQL to XML. Example on (PPT 3, 57).
  7. Others:
    • JSON also has JSON Schema for validation;
    • Same Origin Policy (SOP): Full access to same origin (network, documents, storage, cookies);
    • XSLT (Extensible Stylesheet Language Transformations) is a language for transforming XML documents into other documents;
    • XML data binding refers to the process of representing the information in an XML document as an object in computer memory.

Week 3

  1. REST (Representational State Transfer)
    • Representational: Clients possess the information necessary to identify, modify, and/or delete a web resource;
    • State: All state information is stored on the client;
    • Transfer: State passed from client to server via HTTP;
    • Everything in REST is considered as a resource.
  2. REST vs AJAX: REST can do operations (PUT, POST, GET, HEAD), while AJAX can only retrieve data from the back-end. AJAX can be a part of REST but REST can never be AJAX.
  3. Mashup:
    • Pros: “lightweight” application, “lightweight” development, low costs for gathering data, rapid development;
    • Cons: Dependency from data source, standards & versions, copyright, security;
    • Development process: Component discovery and selection -> Composition and immediate deployment -> Use and evolution -> loop…

Week 4

  1. WSDL (Web Services Description Language): Service name, types of input parameters, types of output parameters…
    • WSDL 1.1 example on PPT 5, Page 13;
    • WSDL 2.0 example on PPT 5, Page 31.
  2. SOAP (Simple Object Access Protocol): Messaging protocol for transport with binding to existing Internet protocols like HTTP and SMTP.
    • SOAP example on PPT 5, Page 21;
    • Example of binding WSDL to SOAP on PPT 5, Page 24.
  3. BPEL (Business Process Execution Language):
    • BPM (Business Process Management);
    • Example on PPT 5, Page 47-62.
  4. Others:
    • Web Services Resources Property (WSRP): Stateful;
    • Web Services Interoperability (WS-I): To tackle the challenges of interoperability among Web services.
    • Service provider creates, publishes, and operates services. Service customer uses services. Service broker helps service customer find interested services.

Week 5

  1. WSIL (Web services Inspection Language) example on PPT 6, Page 7.
  2. UDDI (Universal Description Discovery and Integration):
    • Data model: businessEntity, businessService, bindingTemplate, tModel.
  3. UDDI Search Markup Language (USML) for supporting “Google” style services Search.
  4. Others:
    • Advanced UDDI Search Engine (AUSE);
    • Dynamic Service Discovery Framework (DSDF);
    • The federated framework provides a uniform interface for both UDDI-based and WSIL-based service discovery.

Week 7

  1. Latent Dirichlet Allocation (LDA).

Others

  1. Pros of SOC: Reusability, interoperability.
  2. Services ecosystem: How all of the services can work together and what are their relationships.
  3. DTD:
     <!DOCTYPE bookshelf [
         <!ELEMENT bookshelf (book*)>
         <!ELEMENT book (author, content)>
         <!ELEMENT author (#PCDATA)>
         <!ELEMENT content (#PCDATA)>
     ]>
    

    XML Schema:

     <xs:element name="bookshelf">
         <xs:complexType>
             <xs:sequence>
                 <xs:element name="author" type="xs:string" />
                 <xs:element name="content" type="xs:string" />
             </xs:sequence>
         </xs:complexType>
     </xs:element>
    

    WSDL 1.1:

     <message name="getCreditReq">
         <part name="cardNum" type="xs:string" />
         <part name="ssn" type="xs:string" />
     </message>
     <message name="getCreditRes">
         <part name="namw" type="xs:string" />
         <part name="address" type="xs:string" />
         <part name="accountBalance" type="xs:string" />
     </message>
     <portType name="personalCredit">
         <operation name="getCredit">
             <input message="getCreditReq" />
             <output message="getCreditRes" />
         </operation>
     </portType>
    

    WSDL 2.0:

     <types>
         <schema>
             <element name="getCreditReq">
                 <complexType>
                     <element name="cardNum" type="xs:string" />
                     <element name="ssn" type="xs:string" />
                 </complexType>
             </element>
             <element name="getCreditRes">
                 <complexType>
                     <element name="name" type="xs:string" />
                     <element name="address" type="xs:string" />
                     <element name="accountBalance" type="xs:string" />
                 </complexType>
             </element>
         </schema>
     </types>
     <interface name="personalCredit">
         <operation name="getCredit">
             <input messageLabel="In" element="getCreditReq" />
             <output messageLabel="Out" element="getCreditRes" />
         </operation>
     </interface>
    
  4. UDDI data model:
    • Business entity;
    • Business service: service;
    • Binding template: port;
    • Technical models (tModel): service interface.
  5. UDDI for centralized web service publishing: Can’t dynamically updated; WSIL for distributed web service publishing: No uniform way to query a web service, and tModel is not stored in UDDI.
  6. <​partnerLinkType> d​escribes the way two business partners interact.
  7. Relations between service broker, service consumer and service provider:
    • Service provider - WSDL (publish or announce) -> service broker;
    • Service consumer - UDDI (find or discover) -> service broker;
    • Service consumer <- SOAP (invoke or bind) -> service provider.
  8. BPEL supports long-running, stateful sequence, while WSDL supports a single, stateless model.
评论